Errori, bug, domande - pagina 1704

 
Stanislav Korotky:
È così che dovrebbe essere, non siete confusi? Avete uno specificatore protetto, definisce i metodi come disponibili nei discendenti.
Con l'ereditarietà protetta, i metodi pubblici della classe base diventano protetti nella classe derivata.
 
Sergei Vladimirov:
Con l'ereditarietà protetta, i metodi pubblici della classe base diventano protetti nella classe derivata.
Esattamente. Accessi protetti nel derivato.
 
Stanislav Korotky:
Esattamente. Accessi protetti in un derivato.
Bene, fate una chiamata a un metodo protetto da un oggetto.
 
Alexey Kozitsyn:
Sì, ciò che un'istanza di classe ha dopo il punto e ciò che la classe stessa ha dopo questo.

In breve, così:


È bello quando si conoscono i nomi dei metodi. E se non lo fai? Aprire un file e vedere cosa c'è?

Forse alcuni lo trovano conveniente, ma difficilmente molti...

 
Artyom Trishkin:

Ctrl+Space ha mai mostrato un elenco di metodi disponibili?

Ctrl+Space funziona come sempre, e anche Ctrl+Shift+Space, e non si sono rotti.

Sono le intelligenze dopo il punto che non funzionano.

La lista dei membri si apre dopo il punto. Costruire 1430.
 
Artyom Trishkin:

In breve, così:


È bello quando si conoscono i nomi dei metodi. E se non lo fai? Aprire il file e vedere cosa c'è?

Può essere conveniente per qualcuno, ma non credo che molti...

Perché nell'area delle variabili globali? Logicamente non dovrebbe essere aperta lì perché non è necessaria.

Provatelo in OnTick, per esempio.

 
Alexey Volchanskiy:

E perché nell'area delle variabili globali? logicamente, non dovrebbe aprirsi affatto lì, perché non c'è bisogno di

provalo in OnTick, per esempio

Non fa differenza. È lo stesso ovunque.
 

Qui c'è un array

array = 0|-5|-14|49|35|-7|-15|48|36|99|67|70|90|107|170|233|296|269|243|237|223|220|200|196|195|199|262|265|298|

come trovare il massimo drawdown?

Valore iniziale 0 !
 
Stupido. Può dirmi perché non posso farlo?
class A
{
};

class B
{
  A* Data[];
  
  B()
  {
    ArrayResize(this.Data, 1);
  }

  A* operator []( const int Pos )
  {
    return(this.Data[Pos]);
  }
  
  void Init()
  {
    A* a = this[0];
    a = new A; // так работает
    
    this[0] = new A; // а так - нет
  } 
};
 
Itum:

Qui c'è un array

array = 0|-5|-14|49|35|-7|-15|48|36|99|67|70|90|107|170|233|296|269|243|237|223|220|200|196|195|199|262|265|298|

come trovare il massimo drawdown?

Il valore iniziale è 0 !
double MIDD(double& fEquity[])
{
        double fMaxEquity = 0;
        double fMIDD = 0;
        
        for(int i = 0; i < ArraySize(fEquity); i++)
        {
                fMaxEquity = MathMax(fMaxEquity, fEquity[i]);
                fMIDD = MathMax(fMIDD, fMaxEquity - fEquity[i]); // это в деньгах,
                                                                 // если нужно в процентах, то так:
                fMIDD = MathMax(fMIDD, (fMaxEquity - fEquity[i]) / fMaxEquity * 100);
        }
        
        return fMIDD;
}
fEquity[] è il vostro array.