怎样在保证类里成员不会被恶意修改的情况下获得类成员的指针
- C/C++ code
class Tracking {public: Tracking(); int *getP();private: int *p;};
例如上面的这个类,如果getP()这个函数直接写成{ return p;}那么在获得类成员p以后在外部就能对他进行修改,所以我想问下除了拷贝以外有没有能返回指针p,又保证外部不能对其进行修改的方法
[解决办法]
const
[解决办法]
int* Getp() const
[解决办法]
看清了哦
是
或
const int* Getp() const;
const int* Getp();
[解决办法]
[解决办法]
int *getP();返回p的一份深拷贝
[解决办法]
返回const指针即可。
class Tracking {
public:
Tracking();
const int *getP() { return p;}
private:
int *p;
};
如果直接修改,会编译出错。
[解决办法]
既然你不想别人修改p,更常用的做法是,返回副本
int Getp()
{
return *p;
}
[解决办法]