我想知道如何通過const方法保護對象的非常量指針成員。例如:對非常量指針成員的C++ const方法
class B{
public:
B(){
this->val=0;
}
void setVal(){
this->val = 2;
}
private:
int val;
};
class A{
public:
A():b(new B){}
void changeMemberFromConstMethod() const{
this->b->setVal();
}
private:
B * b; // how to protect data pointed in A::changeMemberFromConstMethod
}
是否可以「保護」指向他的方法的A :: b數據? 經過對網絡的大量研究,尚未得到滿意的反饋。
感謝您的幫助。
'''醫生,當我這樣做的時候會很痛苦 - 「所以不要這樣做。」這不像任何人扭動你的手臂,並迫使你從const方法調用setVal。我想我不明白問題的本質。 – 2014-08-29 20:45:31
這僅僅是爲了舉例的目的。例如,它就像我要設置的保證,即不修改指定的B數據。 – Alex 2014-08-29 20:50:16
如果你不想修改'* b',那麼就不要。我仍然沒有把握困難的性質。 – 2014-08-29 20:52:11