我正在从 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 中没有任何对象作为对象。其次,如果我在 getTag() 中不使用 Object 而使用 AWrapper 作为返回,我将遇到循环依赖问题。谁能告诉我如何解决这个问题?
如果我的问题很愚蠢,我真的很抱歉,我的 C++ 技能仍然很差,所以任何帮助将不胜感激!