Ciao a tutti. Scusate la questione niubba ma il c++ lo sto studiando adesso. Ecco io avrei questo codice:

codice:
#include <iostream>

using namespace std;

class CProva {
      private:
              static float n;      
      public:
             CProva() {
                      SetN(3.14);
             }
             static void SetN(const float &num) {
                    n = num;
             }
             static float GetN() {
                    return n;
             }
             static void ShowAbout() {
                    cout << "#CProva v1.0" << endl;
             }
};

int main() {
    int a;
    CProva::ShowAbout();
    cout << "Pigreco: " << CProva::GetN() << endl;
    cin >> a;
    return 0;
}
Naturalmente l'ho fatto solo per provare ad usare il modificatore static. Il problema è che compilando il listato con il devcpp mi esce fuori l'errore seguente: [Linker error] undefined reference to `CProva::n' .

Da quello che ho capito gli attributi static posso essere modificati solo da funzioni membro static, poi anche che se una funzione membro è dichiarata static è possibile usarla anche non instanziando nessun oggetto della classe stessa, attraverso il risolutore di scope ::, no?

Allora dove sbaglio? Sapete illuminarmi ?

grazie anticipatamente