2015-03-02 28 views
0

我必須編寫一個包含2個類的代碼,其中一個取決於另一個請參閱圖像(只是爲了簡化)如果你能幫助我?如何編寫兩個類中的一個取決於另一個類? C++

我不能把圖像

+2

請張貼代碼(使用4個空格縮進,或突出顯示並單擊「{}」按鈕),而不是圖像。如果一個類依賴於另一個類,那麼在使用它之前,您需要聲明(並可能定義)它所依賴的類。 – 2015-03-02 17:11:48

+0

@stefan我不認爲這是(必然)循環依賴。 – crashmstr 2015-03-02 17:30:29

+0

@crashmstr不一定,我同意。但是這是一個非問題,或者它是循環依賴。 – stefan 2015-03-02 17:31:28

回答

1

在C++中,不能創建兩個類A和B,其中A將B和B的成員變量將有A的成員變量,這是因爲大小必須知道編譯器解析成員的時間。如果你仔細想想,這種結構將是無限大:

A將具有B-將有將有B就擁有一個....

這就是爲什麼我們不能這樣做。

您只能將指針作爲變量。這是因爲指針最後只是內存地址而已,並且內存地址總是已知的(4或8字節)。

A將有B *,就是這樣。

B將有A *,就是這樣。

爲了達到這個目的,你可以做前向聲明。

+0

並非完全如此。首先,它也適用於參考(儘管在實踐中可能不是一個好主意)。其次,指針無法保證4或8個字節。 – 2015-03-02 17:34:35

+0

我相信'A'也可以包含***參考***到'B','B'參考'A'? (非常類似於指針,但不完全) – abelenky 2015-03-02 17:34:51

+0

@abelenky:沒錯。儘管對於成員變量來說,指針通常是可取的。 – 2015-03-02 17:35:21

相關問題