我從Java背景學習C++,這裏是我剛認識的問題:如何實現一個方法返回類似對象中的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。其次,如果我不使用Object,但使用AWrapper作爲getTag()中的返回值,則會產生循環依賴問題。任何人都可以告訴我如何解決這個問題?
真的很抱歉,如果我的問題是愚蠢的,我的C++技能仍然很差,所以任何幫助將不勝感激!
你在想這個錯誤的方法。 C++ *很簡單,但它不同*。忘記你如何在Java中做事,並開始學習C++的C++方式。 –
歡迎來到複雜且具有許多隱藏細節,但不能得到 - 因爲它只是最好的語言,名爲C++的朋友。 –
Java的對象都從Object隱式繼承。從理論上講,你可以做一切你個人正在從一些根類繼承的東西(比如Object)。接下來,Java有全自動垃圾收集功能,而C++ ......好吧,在C++中,很少有人發現除引用計數之外的任何值得的事情:在C++中,您需要管理對象的生命週期,而不是將其留給通常處理的框架。你必須習慣的另一件事是對象的INSTANCE和POINTERS之間的區別:在Java中,每個非平凡的對象基本上都是一個POINTER。 – Yakk