constメンバ関数は、クラスメンバが指しているデータを変更することができます。ここに私が意味するものの例があります:constメンバ関数がメンバ配列を変更できないようにする
class MyClass
{
public:
MyClass();
int getSomething() const;
private:
int* data;
};
// ... data = new int[10];, or whatever
int MyClass::getSomething() const
{
data[4] = 3; // this is allowed, even those the function is const
return data[4];
}
これが許されない場合は、私は好きです。 "getSomething()const"がそれを変更できないように "データ"をどのように定義すればよいですか? (しかし、const以外の関数がそれを変更できるように)。これには何らかの「ベストプラクティス」がありますか?多分std :: vector?
はい、constメンバー関数はあなたが思ったほど役に立たないことが分かります。 –
@David: 'int *'の代わりに 'std :: vector'を使う場合にのみ有用です。 –
Nawaz