|
Quellcode
|
1
2
3
4
5
6
7
|
class A{
private:
int a;
public:
inline int* geta() const {return &this->a;}
};
|
In diesem Fall macht es wenig Sinn, nur die Methode const zu machen. Du musst den Rückgabetyp (also deinen int*) auch const machen:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
class A{
private:
int a;
public:
inline const int* geta() const {return &this->a;}
};
|
Somit ist sichergestellt, dass du deinen int nur lesen kannst, aber nicht verändern. Manche Programmierer vermeiden setter und verwenden stattdessen 2 getter. Bedeutet, sie haben einmal einen const getter und einen der nicht const ist. Mit dem nicht konstanten kann man dann den Wert (per Referenz) verändern. Hat mit sicherheit vor und nachteile.
Das inline brauchst du auch nicht, methoden, deren Rumpf in der Klasse ist, sind automatisch immer inline. Dann würde ich das return noch so umbauen:
|
C-/C++-Quelltext
|
1
|
return &a;
|
PS: Verwende doch bitte das
|
Quellcode
|
1
|
[cpp]-Tag
|
Socke