顯然,仍然允許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:只有當他使用'std :: vector'而不是'int *'時,它纔會變得有用。 –
Nawaz