![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
El constructor por defecto tiene un propósito específico para inicializar una matriz de objetos de su clase. Un constructor con todos sus parámetros establecidos por defecto no es un equipo por defecto. Tut.
He resaltado la errata en rojo.
Por cierto, ¿por qué ese constructor no es un constructor por defecto? ¿Otra muleta?
Un constructor por defectotiene un propósito específico para inicializar un conjunto de objetos de su clase. Un constructor con todos sus parámetros establecidos por defecto no es un equipo por defecto. Aquí
"Acceso a puntero no válido" =="Intento de acceso a un puntero no válido"?
A menudo es un signo directo de una mala mano o de falta de comprensión de los principios básicos del trabajo con punteros.
Menos a menudo es un signo de uso de la clase mal documentado.
Por cierto, ¿por qué este constructor no es un constructor por defecto? ¿Otra muleta?
Todo lo contrario. La muleta es tener parámetros por defecto, ya que esto es una fuente de errores difíciles de encontrar. Aquí es donde estamos siendo estrictos.
Si escribes un constructor con parámetros, también puedes escribir un constructor sin parámetros. Y si tienes un constructor por defecto, no puedes escribir un constructor paramétrico con todos los parámetros por defecto.
Es una muleta tener parámetros por defecto, ya que es una fuente de errores difíciles de detectar.
Sí, de alguna manera no se me ocurre ninguna situación de este tipo.
Y si hay un constructor por defecto, no se puede escribir un constructor paramétrico con todos los parámetros por defecto.
He leído sobrela operación de resolución de contexto ( ::: ). Decidí intentar utilizarlo en dos clases no relacionadas:
El compilador da un error en la línea C_A::funcA(j). Si lo comento, parece que funciona. ¿Cuál es mi error?
He leído sobrela operación de resolución de contexto ( ::: ). Decidí intentar utilizarlo en dos clases no relacionadas:
El compilador da un error en la línea C_A::funcA(j). Si lo comento, parece que funciona. ¿Cuál es mi error?
En su caso, el contexto de la clase C_A no está disponible en la clase C_B.
Sólo es correcto si:
Pero entonces puede:
En general, este tipo de llamadas se utilizan para los métodos sobrecargados:
Aproximadamente así.
En su caso, el contexto de la clase C_A no está disponible en la clase C_B.
Estoy intentando pasar valores de miembros de una clase a otra "por referencia" y utilizando un descriptor. Ambas opciones parecen funcionar. Este es el esquema más sencillo:
¿Cuál de estos dos métodos funciona más rápido? ¿Qué es más preferible?
Estoy intentando pasar valores de miembros de una clase a otra "por referencia" y utilizando un descriptor. Ambas opciones parecen funcionar. Este es el esquema más sencillo:
¿Cuál de estos dos métodos funciona más rápido? ¿Qué es más preferible?
¿Las preguntas son realmente pesadas/incorrectas?
Durante mucho tiempo utilicé la primera forma ("siguiendo el enlace"), pero me gusta mucho la idea de los descriptores. Sólo que no sé si vale la pena reescribir todas las clases por ello.