读书人

怎样在保证类里成员不会被恶意修改的情

发布时间: 2012-04-01 17:23:46 作者: rapoo

怎样在保证类里成员不会被恶意修改的情况下获得类成员的指针

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();
[解决办法]
探讨

看清了哦




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;
}
[解决办法]
探讨

返回const指针即可。
class Tracking {
public:
Tracking();
const int *getP() { return p;}

private:
int *p;
};

如果直接修改,会编译出错。

读书人网 >C++

热点推荐