当代码中指针层次较深时,为了简写,可以创建一个临时的引用来操作。
#ifndef REFERENCE_H
#define REFERENCE_H
class A
{
public:
int v;
};
class B
{
public:
A *a;
};
class C
{
public:
B *b;
};
#endif // REFERENCE_H
在实际应用中,如果想要改变A中指针p的值,使用临时引用(方法3)或者指针(方法2)来操作。
int value = 1;
A aa;
aa.v = value;
B bb;
bb.a = &aa;
C cc;
cc.b =&bb;
cout << "value = " << cc.b->a->v <<endl;
// 修改value,方法1
cc.b->a->v = 2;
cout << "value = " << cc.b->a->v <<endl;
// 修改value,方法2
int *test2 = &cc.b->a->v;
*test2 = 3;
cout << "value = " << cc.b->a->v <<endl;
// 修改value,方法3
int &test3 = cc.b->a->v;
test3 = 4;
cout << "value = " << cc.b->a->v <<endl;