天天看點

c++兩個類互相調用需要注意的問題

1.首先要陸避免頭檔案的互相引用:

  解決方法:

  有兩個類A和B, 在各自的頭檔案中聲明對方,而不能用包含, 即要用class 而不能用

include

2. 兩個類的初始化順序:

  一定要明确兩個類的初始化順序, 如果在類A中初始化B, 就不要再在B中初始化A;

即可以在A的構造函數中m_b(new B());

3.在各自的頭檔案中應隻聲明對方的指針對像,而不要試圖在頭檔案中去執行個體化;否則你會發現

這樣的錯誤:

  錯誤    1    error C2146: 文法錯誤 : 缺少“;”(在辨別符“m_b”的前面)    A.h

錯誤    2    error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支援預設 int    A.h  

  錯誤    4    error C2146: 文法錯誤 : 缺少“;”(在辨別符“m_a”的前面)    B.h

錯誤    5    error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支援預設 B.h   

繼續閱讀