Errori, bug, domande - pagina 1737

 
O una situazione ancora più semplice.
class A
{
  const int a;
  
  A() : a(this.f()) {}
  
  int f() { return(0); }
};
Perché questo non compila affatto? questo è usato anche PRIMA che il corpo del costruttore sia chiamato.
 
fxsaber:
O una situazione ancora più semplice.
class A
{
  const int a;
  
  A() : a(this.f()) {}
  
  int f() { return(0); }
};
Perché questo non compila affatto? questo è usato anche PRIMA che il corpo del costruttore sia chiamato.
Perché non includete una lista di inizializzazione nel corpo? In senso figurato, un oggetto di classe (compreso questo) è inizializzato al segno ':'
 

Ilyas:
Почему список инициализации Вы не включаете в тело?

Perché const int a; Non si può fare altrimenti, giusto?

In senso figurato, un oggetto di una classe (compreso questo) è inizializzato sul segno ':'

Capito.
 
Cari moderatori, se un prodotto (indicatore) che è disponibile a pagamento nel Market può essere realizzato gratuitamente, è possibile esporre e discutere apertamente sul forum senza temere di essere bannati? Oppure, qual è il modo migliore di procedere?
 
Yousufkhodja Sultonov:
Cari moderatori, se un prodotto (indicatore) che è disponibile a pagamento nel Market può essere realizzato gratuitamente, è possibile esporre e discutere apertamente sul forum senza temere di essere bannati? Oppure, cosa dovrei fare?
Qualsiasi pubblicità è proibita, sarete banditi immediatamente. è meglio non correre il rischio.
 

Errore di compilazione

class A {};
class B {
public:
        static int k;
};
int B::k = 0;
#define MACRO( classC, classB )      \
class classC : public classB {       \
public:                              \
        classC( A *aa ) : a( aa ) {} \ //(1)
        A *a;                        \ //(2)
        int f( int i );              \
};                                   \
int classC::f( int i )               \
{                                    \
                classB::k = i;       \ //error: '::' - open parenthesis expected
        int j = classB::k;           \ //нормально
        return j;                    \
}
MACRO( C, B )
E se si cancellano le linee (1) e (2), per esempio, non c'è nessun errore. Perché hanno interferito?
 
 
Vladislav Andruschenko:
qualsiasi pubblicità è vietata, il divieto è immediato. È meglio non correre rischi.
È meglio avere un thread sul blog, si può fare tutto lì.
 
Alexey Volchanskiy:
È meglio avere un thread sul blog, si può fare tutto lì.
))))))) e promuovere il tuo blog ))))))))
 
Ciao a tutti. C'è questa strana rientranza in basso e non riesco a toglierla.
File:
k1amn19a2h.png  37 kb