Membri static in una classe

di zio_mangrovia il
4 risposte
Leggo che l'inizializzazione di un attributo static va eseguita successivamente alla sua dichiarazione ed al di fuori della dichiarazione di classe.

Poi trovo questo esempio che mi mette in crisi:
class MyClass {
    public:
      static int GetCounterValue();
      /* ... */

    private:
      static int Counter = 0;
      /* ... */
  };

  int MyClass::GetCounterValue() {
    return Counter;
  }
L'inizializzazione è fatta all'interno della dichiarazione della classe, non è sbagliato?

4 Risposte

  • Credo proprio che sia sbagliato, del resto basta compilare quel codice e ti apparirà un messaggio del genere:
    ISO C++ forbids in-class initialization of non-const static member 'MyClass::Counter'|
    Per curiosità dove hai preso quest'esempio?
  • Forse era

    static const int Counter = 0;

    ?
  • Un errore... Capita ...segnalalo
Devi accedere o registrarti per scrivere nel forum
4 risposte