嗨,这是我的第一个话题。我在c ++中有以下情况:
class A;
class Child;
class Parent;
class A
{
public:
Parent *_p;
A() {}
};
class Parent
{
public:
void add(A &a) { a._p = this; }
Parent() {}
};
class Child : public Parent
{
public:
A a;
Child() : Parent() { add(a); }
};
主要很简单:
int main(int argc, char *argv[ ])
{
Child c1,c2;
c2=c1;
return 0;
}
目前c2.a._p
有相同的地址c1.a._p
(我做了一个副本)。我想修改 A 和/或 Parent 以便_p
用正确的父级更新指针。我不能改变孩子,这是我的问题的强烈限制。
任何想法?可能吗?