Ciao a tutti. Scusate la questione niubba ma il c++ lo sto studiando adesso. Ecco io avrei questo codice:
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' .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; }
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


Rispondi quotando

