Yo desatento:) ¿Puede explicar por qué es necesario? ¿Por qué no se puede utilizar el constructor?
Porque al escribir mi propio código me encontré con una situación en la que mi estructura está involucrada en una unión. La solución con un constructor vacío me vino inmediatamente a la mente, pero era un fastidio que mi código tuviera una unión. Por eso preguntaba, no por aburrirme, sino por la utilidad práctica.
Lo he hecho funcionar y he visto el problema. Parece que ahora sólo se permiten estructuras con campos públicos con uniones. Entonces sería posible escribir struct = {0};
Alexey Kozitsyn: Lo he hecho funcionar y he visto el problema. Parece que ahora sólo se permiten estructuras con campos públicos con uniones. Entonces sería posible escribir struct = {0};
Tal vez te haya entendido mal de nuevo, pero este código funciona sin ninguna advertencia:
struct STRUCT
{
//private:int i;
};
// Нужен только для того, чтобы показать необходимость решения без конструктора
union UNION
{
STRUCT Struct; // конструктора не должно бытьint i;
};
// Обходим Warning "possible use of uninitialized variable"template <typename T>
void StructInit( T& ) {}
STRUCT Func()
{
STRUCT Res = {0}; // ок!// StructInit(Res); // с этой строкой Warning не появляется, но это какой-то абсурд!return(Res);
}
voidOnStart()
{
Func();
}
Tal vez te haya entendido mal de nuevo, pero este código funciona sin ninguna advertencia:
Así es, las estructuras públicas se inicializan. Pero la unión no tiene nada que ver.
Curiosamente, si una estructura con un campo oculto se convierte en un campo público de una nueva estructura, la nueva estructura tampoco se inicializará, aunque todos los campos estén abiertos.
Hola, ¿podríais decirme si es posible declarar un array especificando el número de elementos que contiene con una variable? Si no es así, ¿cómo se puede hacer?
externintPeriod = 10;
int Massiv[Period]; //Выдаёт ошибку: "invalid index value"
Hola, ¿podríais decirme si es posible declarar un array especificando el número de elementos que contiene con una variable? Si no es así, ¿cómo se puede hacer?
Hola, ¿podríais decirme si es posible declarar un array especificando el número de elementos que contiene con una variable? Si no es así, ¿cómo se puede hacer?
Añade un constructor por defecto a la estructura.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Bichos, errores, preguntas
fxsaber, 2017.09.06 09:38
Yo desatento:) ¿Puede explicar por qué es necesario? ¿Por qué no se puede utilizar el constructor?
¿O es para mostrar un error de inicialización de la estructura con un campo cerrado?
Yo desatento:) ¿Puede explicar por qué es necesario? ¿Por qué no se puede utilizar el constructor?
Porque al escribir mi propio código me encontré con una situación en la que mi estructura está involucrada en una unión. La solución con un constructor vacío me vino inmediatamente a la mente, pero era un fastidio que mi código tuviera una unión. Por eso preguntaba, no por aburrirme, sino por la utilidad práctica.
Tuve que escribir esta vuelta de tuerca para evitar este "bug" (¿es un bug o no?).
Todavía no he visto ninguna otra solución.
Lo he hecho funcionar y he visto el problema. Parece que ahora sólo se permiten estructuras con campos públicos con uniones. Entonces sería posible escribir struct = {0};
Este no es el caso.
Este no es el caso.
Tal vez te haya entendido mal de nuevo, pero este código funciona sin ninguna advertencia:
Tal vez te haya entendido mal de nuevo, pero este código funciona sin ninguna advertencia:
Así es, las estructuras públicas se inicializan. Pero la unión no tiene nada que ver.
Curiosamente, si una estructura con un campo oculto se convierte en un campo público de una nueva estructura, la nueva estructura tampoco se inicializará, aunque todos los campos estén abiertos.
Hola, ¿podríais decirme si es posible declarar un array especificando el número de elementos que contiene con una variable? Si no es así, ¿cómo se puede hacer?
Hola, ¿podríais decirme si es posible declarar un array especificando el número de elementos que contiene con una variable? Si no es así, ¿cómo se puede hacer?
https://www.mql5.com/ru/docs/array/arrayresize
Hola, ¿podríais decirme si es posible declarar un array especificando el número de elementos que contiene con una variable? Si no es así, ¿cómo se puede hacer?
ArrayResize()