先上代码
#include <iostream>
using namespace std;
class test1
{
private:
int val;
public:
int * changeTest(void)
{
return &val;
}
void showVal(void)
{
cout << val << endl;
}
};
int main()
{
test1 t;
int *p = t.changeTest();
*p = 10;
t.showVal();
system("pause");
return 0;
}
首先定义了一个类test1,该类包括一个私有属性val以及两个方法。
changeTest()方法用于返回私有属性val的地址。
showVal()方法用于向屏幕输出val属性的值。
主函数中实例化了一个对象 t ,调用changeTest()方法方法返回val的地址,然后为其赋值10。使用showVal()方法打印val的值。
最后输出结果为如下
C++程序员,除非在不得已的情况下,否则应该尽量减少指针的使用。
首先,使用指针就可能会涉及到内存的管理和释放,容易造成内存泄露或者产生非法内存的指针。
其次,标准库更加方便安全。
最后,指针可能会改变类的安全性。在此例中,封装为私有属性就是为了防止外部修改,但通过指针还是可以修改,这是不安全的。