Errores, fallos, preguntas - página 1678
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Se puede utilizar para hacer un análogo de la palabra clave final, prohibiendo explícitamente la herencia posterior.
Pero como muestra el ejemplo anterior, no se puede hacer un análogo. Debe especificar final incluso para los métodos privados.
Extraño. Para la herencia pública, el acceso máximo debe ser protegido, no privado.
¿Y la función del ejemplo se sobrecarga exactamente?
Extraño. Para la herencia pública, el acceso máximo debe ser protegido, no privado.
Y en el ejemplo, ¿la función está exactamente sobrecargada?
Sí. Acabo de descubrirlo yo mismo.
Si lo hace
BASE() {Func();} // вместо void Init() {Func();} Вызов Base.Init() - убрать конечно.
puedes comprobarlo tú mismo después de ejecutarlo y ver si sabes lo que debe pasar.
En el registro de la terminal obtengo
ir torpemente a la ubicación especificada en el código fuente. Sería conveniente poder hacer doble clic en un mensaje de este tipo en el registro del terminal y llegar directamente a la línea especificada.
Si alguien lo apoya, que hable.
Lo clásico es una interfaz en una clase base con redefinición en las descendientes:
Lo clásico es cuando se anulan los métodos virtuales protegidos/públicos. Pero para los privados, no es tan obvio (en términos de aplicación). Gracias por responder.
Sí, ya borré mi ejemplo sin ver tu respuesta, fue realmente desafortunado.
Actualización. Yo mismo me confundí en lo básico mientras te contestaba. Todo era correcto en ese ejemplo, no debería haberlo borrado. El mismo ejemplo de nuevo con un ejemplo de uso:
Actualización. Yo mismo me confundí en lo básico mientras te contestaba. Todo era correcto en ese ejemplo, no debería haberlo borrado. De nuevo con un ejemplo de cómo utilizarlo:
El compilador no hace un dos.
Este no es un buen ejemplo, ya que no vemos que se utilice la interfaz CAnimal en ninguna parte. También se han hecho públicos dos descendientes. Entiendo el tema, así que está bien.
Un ejemplo normal. Un animal abstracto básicamente hace algún sonido, pero indefinido, por lo que no podemos llamar al método Speak() sobre él; sólo puede ser llamado sobre un animal de una especie específica. Por lo tanto, declaramos un método virtual cerrado en una clase base, y lo anulamos en las descendientes y lo abrimos.
Un ejemplo normal. Un animal abstracto básicamente hace algún sonido, pero indefinido, por lo que no podemos llamar al método Speak() sobre él; sólo puede ser llamado sobre un animal de una especie específica. Por lo tanto, declaramos un método virtual cerrado en una clase base, y lo anulamos en las descendientes y lo abrimos.