再一次(可能是微不足道的)问题让我发疯了。我刚刚花了 4 个小时试图找出正在发生的事情,但没有成功。这就是为什么我再次向社区寻求帮助的原因。
在阅读了初步答案并进行了更多调试后,我不得不编辑问题:
class A{
friend class B;
int someMember;
void setA(some paremeters);
};
class B{
public:
A someA;
B(some parameters){
someA.setA(some parameters);
std::cout<<someA.someMemeber;
}
};
使用调试器向我展示了 someA.setA(some parameters) 实际上做了它应该做的事情——它将正确的值分配给 A 的成员。在离开 A 之后,分配的值似乎超出了范围,因此 someA.someMember 输出了某事。像 -9.345345e+ 等 - 意味着该成员尚未初始化,尽管我实际检查过并且 someMemer 被赋予了正确的值。
有没有人遇到过这样的事情?