Errori, bug, domande - pagina 1133

 
A100:

Ma non vuole dirmelo.

Ancora: un tale oggetto può essere creato all'interno della classe stessa, ma un puntatore a tale oggetto può anche essere creato al di fuori della classe

Quindi lo farà:

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

Lo dirà:

Potete anche creare un oggetto se avete bisogno di

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:

Non capisco come scansionare i server quando ci si connette? In precedenza, ho inserito il nome del server e la lista è apparsa, ho aggiunto quelli giusti (immagine 2, ci sono server aggiunti circa quindici giorni fa) Nell'immagine uno non è più la scansione dei server giusti, non posso aggiungere. Cosa non è più possibile o come si fa da soli?


Dovete usare parte del nome della società ma non parte del nome del server. La ricerca del nome del server non funziona più perché spesso dava liste di corrispondenze troppo grandi e non era affatto quello che il commerciante voleva.

 
Lone_Irbis:

Sì, e anche il forex è meglio non usarlo affatto. O il computer, se è per questo :) Non è affatto sano.

Comunque, c'è già una soluzione. Non è molto bello, ma funziona. La correzione si chiama "Al diavolo la tua OOP". %) Gli errori sono stati eliminati segando tutte le variabili statiche dalle classi, rimuovendo il prefisso statico da esse e impilandole ordinatamente una accanto all'altra.

In generale, non so perché agli sviluppatori non piacevano le variabili statiche e perché hanno dovuto rimuovere la funzione di inizializzazione automatica delle variabili, ma se devo, devo farlo. Devo usare espedienti...

È così che funziona anche in C++. Le variabili statiche dovrebbero essere definite esplicitamente.

Non ci sono problemi.

 
A100:


Capisco il tuo punto di vista.

Se un'istanza di una classe cerca di essere generata da qualche programma esterno, il costruttore deve essere aperto.

Se l'istanza "genera se stessa" (e passa un puntatore a se stessa a un programma esterno), è disponibile un costruttore chiuso.

 
Renat:

Questo è il modo in cui funziona anche in C++. Le variabili statiche devono essere definite esplicitamente.

Non ci sono problemi.

Beh, la domanda non è tanto dove e come funziona e se ci saranno problemi con esso. Il punto è che prima funzionava bene senza essere esplicitamente specificato.

E per cambiare qualcosa che già funziona, è meglio avere una ragione molto più importante di "lo fanno anche i vicini". :)

Ma andiamo, è ovvio che non è l'unica ragione.

 

Il punto di un singolo costruttore privato è solo per limitare la creazione di classi derivate, in alternativa, una classe può avere diversi costruttori

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

 
Lone_Irbis:

Non è tanto una questione di dove e come funziona e se sarà un problema. La questione è che ha funzionato bene prima senza essere esplicitamente dichiarato.

E per cambiare qualcosa che già funziona, è consigliabile avere ragioni più importanti del "lo fanno anche i vicini". :)

Ma andiamo, è ovvio che non è l'unica ragione.

E si cerca di inizializzare le variabili statiche nella lista di inizializzazione del costruttore.
 
A100:

Lo scopo del singolo costruttore privato è solo quello di limitare la creazione di classi derivate. Una classe può anche avere diversi costruttori

Dopotutto, voi siete il vostro sviluppatore di codice e non ha molto senso in queste restrizioni.
 

Tutti hanno la stessa cosa con i pulsanti della finestra MQL-Storage Fix?

C'è qualcosa che non va con i pulsanti...

Motivazione: