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 operador new crea una instancia de la clase y se llama a un constructor junto con ella. Está escrito en la sintaxis, por lo que no hay otra forma de llamarlo.
He procedido a partir de este ejemplo:
A grandes rasgos, aquí no hay paréntesis (llamada al constructor). Es posible que no esté entendiendo algo todavía.Este código casi no difiere de la herencia múltiple.
De hecho, la clase C_C tiene acceso a los datos de C_A y C_B a través de los punteros correspondientes.Me basé en este ejemplo:
Aquí, a grandes rasgos, no hay paréntesis (llamada al constructor). Es posible que aún no entienda algo.Por qué yo, no es para mí, es para la lavandería central, no usé paréntesis :o)
Mi compilador no se queja de la falta de paréntesis...
De todos modos, de repente surgió una pregunta: ¿cuál es el camino correcto? ¿O da igual que haya paréntesis o no?
Mi compilador no se queja de la falta de paréntesis...
De todos modos, de repente surgió una pregunta: ¿cuál es el camino correcto? ¿O es que da igual que haya paréntesis o no?
Si funciona en ambos sentidos, es más bien una cuestión de unificación sintáctica. Lo principal es que no afecta a la velocidad.
ZS ¿Y funciona del todo? Para ser sincero no lo he comprobado, siempre escribo con paréntesis.
Si funciona en ambos sentidos, es más bien una cuestión de unificación sintáctica. Lo principal es no afectar a la velocidad.
ZS ¿Funciona del todo? Para ser sincero no lo he comprobado, siempre escribo con paréntesis.
No he leído la descripción de la creación de objetos de clase dinámicamente en MQL5, pero en C++ se puede hacer sin paréntesis (se llama al constructor estándar) y con paréntesis (se llama al constructor en función de los parámetros entre paréntesis). Ejemplo:
class CExample
{
int param;
public:
CExample();
CExample(int x);
~CExample();
}
CExample::CExample(int x)
{
param = x;
}
//..........вызов..............
//..где-то в тексте программы..
CExample *ex1 = new CExample; //создание с конструктором CExample();
CExample *ex1 = new CExample(); //создание с конструктором CExample();
CExample *ex1 = new CExample(value); //создание с конструктором CExample(int x);
En mql5 todavía no se pueden pasar parámetros al constructor.
No he leído la descripción de la creación de objetos de clase dinámicamente en MQL5, pero en C++ se puede hacer sin paréntesis (se llama al constructor estándar) y con paréntesis (se llama al constructor en función de los parámetros entre paréntesis). Ejemplo:
Entendido, gracias por la explicación sencilla y directa. Resulta que los paréntesis son para posibles parámetros.
Y la descripción de cómo crear objetos de clase dinámicos en MQL5 es muy concisa:
MQL5 Reference / Fundamentos del lenguaje / Operadores / Operador de creación de objetos new
Referencia MQL5 / Conceptos básicos del lenguaje / Tipos de datos / Punteros a objetos