こんにちはこれは私の最初のトピックです。私は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
(私はコピーをしました)。_p
ポインタを正しい親で更新するために、Aまたは親、あるいはその両方を変更したいと思います。私は子供を変えることができません、これは私の問題の強い制限です。
何か案が?出来ますか?