私はJavaのバックグラウンドからC++を学んでいますが、これは私が出会ったばかりの問題です:
A という名前のクラスがあるとします。AWrapper というラッパーを使用します。A には、AWrapper だけでなく、任意のラッパーへのリンクが必要です。したがって、Javaでは、これを次のように実装できます。
public class A {
Object tag;
Object getTag() {
return tag;
}
void setTag(Object tag) {
this.tag = tag;
}
}
およびそのラッパー:
public class AWrapper {
A a;
public AWrapper(A a) {
this.a = a;
a.setTag(this);
}
}
しかし、C++ ではすべてがそれほど単純ではありません。まず、C++ には Java の Object として何もありません。第 2 に、getTag() の戻り値として Object ではなく AWrapper を使用すると、循環依存の問題が発生します。誰でもこれを解決する方法を教えてもらえますか?
私の質問がばかげている場合は本当に申し訳ありません。私の C++ スキルはまだ貧弱なので、助けていただければ幸いです。