怎样在保证类里成员不会被恶意修改的情况下获得类成员的指针解决方法
怎样在保证类里成员不会被恶意修改的情况下获得类成员的指针
例如上面的这个类,如果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;
}
------解决方案--------------------
- 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;
}
------解决方案--------------------