【发布时间】:2013-09-30 23:55:40
【问题描述】:
我有一个 const 方法,我想将 B 类成员的属性设置为当前实例 A(通过指针进行反向引用)
A类:
void A::foo () const
{
...
...
B b;
b.setA(this);
...
}
B类:
setA(A * Ap){
this->pointerToA = Ap;
}
B * getA() {return pointerToA;}
A* pointerToA;
编译器不允许这样做...好的 现在我尝试了
B类:
setA(const A * Ap){
this->pointerToA = Ap;
}
const A * getA() {return pointerToA;}
const A* pointerToA;
这解决了原来的问题,但现在我无法调用B:
...
this->getA()->anotherMethodOfA();
...
因为我得到“无法将 'this' 指针从 'const A' 转换为 'A&'
虽然我理解上面的问题,但我不知道现在如何调用其他方法以及问题是什么......为什么错误消息中有一个A&,因为我没有对A的引用?
【问题讨论】:
标签: c++ constants const-correctness