Errores, fallos, preguntas - página 1133

 
A100:

No me lo quiere decir.

De nuevo: Este objeto puede crearse dentro de la propia clase, pero también puede crearse un puntero a dicho objeto fuera de la clase

Así que lo hará:

class B {
        B() {}
};
void OnStart()
{
        B *b;
        b=new B;
}
 
Fleder:

Lo dirá:

También puede crear un objeto si necesita

class B {
        B( int ii ) : i( ii ) {}
        int i;
public:
        int g() { return ( i ); }
        static B *f( int ii ) { return ( new B( ii ) ); } 
};
void OnStart()
{
        B *b = B::f( 100 );
        Print( b.g());
}
 
Zeleniy:

No entiendo cómo se escanean los servidores al conectarse. Anteriormente, he introducido el nombre del servidor y la lista apareció, he añadido lo necesario (imagen 2, hay servidores añadidos hace unos quince días) En la imagen uno ya no se escanea los servidores necesarios, no puedo añadir. ¿Qué es lo que ya no es posible o cómo lo hace uno mismo?


Tiene que utilizar parte del nombre de la empresa pero no parte del nombre del servidor. La búsqueda de nombres de servidores ya no funciona, ya que a menudo daba listas de coincidencias demasiado grandes y para nada lo que el comerciante quería.

 
Lone_Irbis:

Sí, y el forex es mejor no utilizarlo en absoluto tampoco. O el ordenador, para el caso :) No es nada saludable.

De todos modos, ya hay una solución. No es muy bonito, pero funciona. El arreglo se llama "Al diablo con tu OOP". %) Los errores se eliminaron al serrar todas las variables estáticas de las clases, quitarles el prefijo static y apilarlas ordenadamente una al lado de la otra.

En general, no sé por qué a los desarrolladores no les gustaban las variables estáticas y por qué tuvieron que eliminar la función de inicialización automática de variables, pero si hay que hacerlo, hay que hacerlo. Tendré que recurrir a soluciones...

Así es como funciona también en C++. Las variables estáticas deben definirse explícitamente.

No hay problemas con él.

 
A100:


Ya veo lo que quieres decir.

Si una instancia de una clase intenta ser generada por algún programa externo, el constructor debe estar abierto.

Si la instancia "se genera a sí misma" (y pasa un puntero a sí misma a un programa externo), se dispone de un constructor cerrado.

 
Renat:

Así es como funciona también en C++. Las variables estáticas deben definirse explícitamente.

No hay problemas con él.

Bueno, la cuestión no es tanto dónde y cómo funciona y si habrá algún problema con ello. La cuestión es que antes funcionaba bien sin estar explícitamente especificado.

Y para cambiar algo que ya funciona, más vale tener una razón mucho más importante que "los vecinos también lo hacen". :)

Pero vamos, claro, supongo que no es la única razón.

 

El objetivo de un único constructor privado es únicamente limitar la creación de clases derivadas, Alternativamente, una clase puede tener varios constructores

class A {
private:
        A( int ) {}
public:
        A( int, int ) {}
};
class B : public A {
        B() : A( 0, 0 ) {}
};

 
Lone_Irbis:

No es tanto una cuestión de dónde y cómo funciona y si va a ser un problema. La cuestión es que antes ha funcionado bien sin que se diga explícitamente.

Y para cambiar algo que ya funciona, conviene tener razones más importantes que "los vecinos también lo hacen". :)

Pero vamos, supongo que, por supuesto, esa no es la única razón.

Y tratas de inicializar las variables estáticas en la lista de inicialización del constructor.
 
A100:

El objetivo del constructor privado único es únicamente limitar la creación de clases derivadas. Una clase también puede tener más de un constructor

Al fin y al cabo, usted es su propio desarrollador de código y no tienen mucho sentido esas restricciones.
 

¿A todos les pasa lo mismo con los botones de la ventana MQL-Storage Fix?

Hay algo que falla en los botones...