Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C++] Variabili statiche: 'undefined reference'

    Salve a tutti.

    Perchè la seguente scrittura è corretta:
    codice:
    class Pers
    {
        private:
            static int tot;
        public:
            Pers(){ tot++;}
    };
    Mentre quest'altra genera in fase di linking 'undefined reference to `Pers::tot''

    codice:
    class Pers
    {
        private:
            static int tot;
        public:
            Pers();
    };
    
    Pers::Pers()
    {
        tot++;
    }
    ? A me sembrano equivalenti... Ma una funziona e l'altra no, perchè?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Nemmeno la prima è corretta.
    Quando si dichiarano varibili statiche è sempre necessario definirle anche al di fuori della classe.
    Nel tuo caso diventa:
    codice:
    class Pers
    {
        private:
            static int tot;
        public:
            Pers(){ tot++;}
    };
    int Pers::tot; // in automatico prende 0

  3. #3

  4. #4
    Aaah ok perfetto, ho capito!

    Grazie 1000

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.