Errori, bug, domande - pagina 1119

 

Errore di compilazione: il compilatore pensa che stia passando un puntatore per riferimento

class A {
};

void f1( A*  a ) {}
void f2( int a ) {}

void OnStart()
{
        A* const a1 = new A();
        f1( a1 ); // ошибка компиляции: constant variable cannot be as reference
        const int a2 = 1;
        f2( a2 ); //все нормально
}

Se scrivo f1( A* const a ), tutto si compila bene, ma non scrivo f2( const int a ) e nel caso di f2( int a ) il compilatore lo prende bene


по сути
f1( A*  a ) отличается от f1( A* const  a )
тем же, чем
f2( int a ) отличается от f2( const int a )
allora ci dovrebbe essere un errore anche in f2( a2 )
 
Lone_Irbis:

Non voglio postare l'intero codice e il .set qui, ma posso inviarlo da qualche parte.

Grazie! Proviamo a riprodurlo. Il codice può essere inviato a servicedesk (dopo tutti i controlli sarà garantita la sua cancellazione).
 

Non si può cancellare un puntatore const A*

class A {
};

void OnStart()
{
        const A *a = new A;
        delete( a ); //ошибка компиляции: constant cannot be modified
}

A prima vista sembra logico - delete chiama il distruttore ~A(), e non può essere const (***)

MA allora sarebbe impossibile in linea di principio cancellare l'oggetto nell'esempio seguente

void f()
{
    const A a;
}

perché il distruttore, che non può essere const, viene ancora chiamato quando si esce da f() e quindi la dottrina (***) non funziona

Inoltre, il compilatore C++ non impedisce delete( a ), anche se l'argomento è dichiarato come const A * (il distruttore non può essere dichiarato come const, perché viene chiamato per qualsiasi oggetto, anche non const)

 
non conta più per i post(
 
GriFFon4ik:
non conta più per i post(
Sì, non più ...
 
GriFFon4ik:
non conta più per i post(
Qualunque cosa.
 
barabashkakvn:
Oh bene.
triste :-(
 

Ho controllato il post, non è aumentato. Forse c'è una formula intelligente migliorata...

Forum sul trading, sistemi di trading automatico e strategie di trading di prova

Interessante e divertente

newdigital, 2014.04.09 14:23

Dovrebbe essere vietato pensare - è offensivo!

Le linee si intrecciano in una poesia,
Il mare lecca la terraferma.
I bambini fanno la cacca nel vasino,
# Gli adulti fanno la cacca nella loro anima #

Che fine ha fatto il rating.
 
newdigital:

Ho controllato il mio post qui - non è aumentato. Forse c'è una formula intelligente migliorata...

Che fine ha fatto il rating.
Funziona) ma no(
 
Smesso di contare la valutazione dei messaggi del forum (
Errori , sito web mql5.com , chiuso , iniziativa: 2014.04.09 14:07 , # 993171

Smesso di contare la valutazione dei messaggi del forum (



Gruppo di sostegno2014.04.09 15:27
Cosa te lo ha fatto pensare?
GriFFon4ik2014.04.09 17:38
Beh, prima era un commento scritto, valutazione immediatamente +1, ma ora non c'è "+1 immediatamente".
Gruppo di sostegno2014.04.09 17:38

Ora le valutazioni saranno assegnate periodicamente, con un ritardo

Motivazione: