Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    51

    [C++] domanda teorica sui membri statici.

    Vorrei capire perche' questo funziona:
    codice:
    class Rect
    {
          public:
                 Rect()
                 {num ++;}
    
                 ~Rect()
                 {num --;}
    
                 static void pippo(){num ++;};
    
          protected:
                    static int num;
    
                    };
    int num = 0;
    
    main(){}


    e questo no.



    codice:
    class Rect
    {
          public:
                 Rect()
                 {num ++;}
    
                 ~Rect()
                 {num --;}
    
                 static void pippo();
    
          protected:
                    static int num;
    
                    };
    int num = 0;
    void Rect::pippo() {num ++;}
    main(){}


    Perche' devo per forza definire la funzione dentro la dichiarazione della classe?

    Tra l'altro lo stesso errore viene fuori con il codice d'esempio pubblicato qui (sez 10.1):

    http://www.icce.rug.nl/documents/cpl...lusplus10.html

    codice:
        
    class Test
        {
            static int s_private_int;
    
            public:
                static int s_public_int;
        };
    
        int main()
        {
            Test::s_public_int = 145;   // ok
    
            Test::s_private_int = 12;   // wrong, don't touch
                                        // the private parts
            return 0;
        }
    (ovviamente commentando la riga
    Test::s_private_int = 12; // wrong, don't touch)


    quindi e' un errore subdolo, sfuggito anche a chi scrive articoli seri...

    Grazie a tutti e ciao!

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    51
    up!!!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.