class C { private: static int clsfld; int insfld; public: static void SetClsFld(int v); static int GetClsFld(); void SetInsFld(int v); int GetInsFld(); };
int C::clsfld;
void C::SetClsFld(int v) { clsfld = v; }
int C::GetClsFld() { return clsfld; }
void C::SetInsFld(int v) { insfld = v; }
int C::GetInsFld() { return insfld; }
int main() { C::SetClsFld(77); cout << C::GetClsFld() << endl; C o; o.SetInsFld(88); cout << o.GetInsFld() << endl; C *p = new C(); p->SetInsFld(99); cout << p->GetInsFld() << endl; delete p; return 0; }
Tak du kan bare lægge et svar. Men lige et tillægsspørgsmål.
Hvornår har man brug for at lave en pointer til en instance af en klasse, isteden for bare at lave en instance af en klasse, og når man så har brug for en pointer, så lave en klasse pointer = *instance_klasse?
I hvad nogen kalder "moderne" C++ forsoeger man ogsaa at undgaa alt for meget brug af pointer.
Eksempel paa hvor det ikke kan undgaaes: man skal have sine instanser lagt ind i en data struktur hvor man skal pege paa andre instanser.
Eksempel paa hvor det er praktisk: hvis en klasse skal indeholde andre klasser er det ofte nemmere at have pointere til de andre klasser fremfor klasserne selv p.g.a. kravene til initailisering i constructor.
Hvis du har en klasse som indeholder andre klasser (ikke som pointer) skal de andre klassers constructor kaldes i klassens constructor paa samme maade som basis klassers constructor.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.