我有一個從數據容器類派生的類。構造函數不能初始化容器的所有內容,所以有必要調用另一個類成員函數(提供一些額外的數據)來完成初始化。該成員函數將布爾值設置爲true,表明數據已準備好進行訪問。有條件地從C++中的繼承類訪問基類
如果數據是班上的一員,我將它設置私人/保護,我想有一個訪問,如:
mycontainer& get_data() { check_macro(ready, "Data not ready"); return data; }
我怎麼這樣如果類是繼承自mycontainer
?我可以從mycontainer
私下推導它,然後期望返回參考this
將公開嗎?
你可以重構的構造,因此不會退出,直到對象被完全初始化? – NathanOliver
首先你的非構造函數初始化有些腥意,其次你的最後一句話是非常荒謬的。如果你需要任何幫助,你將不得不提供比你更好的解釋。 – snb
@NathanOliver:這在我現在的情況下是可行的,我同意這是更好的風格。然而,我認爲有些情況下,當它被聲明時完全初始化對象是不合邏輯的,例如,存儲的部分數據可能由聲明時未知的非const成員計算。 – Joce