clist ctrl CTL = getlist ctrl();
或者:
CListCtrl ctl
CTL = getlist ctrl();
無論哪種方式,看起來都更符合我們壹般的邏輯思維,但是執行結果不會通過編譯。
正確拼寫:
CListCtrl * ctl = & ampgetlist ctrl();
或者
CListCtrl & ampCTL = getlist ctrl();
返回壹個CListCtrl類型。返回壹個類的實例是違背C++編程常識的,效率太低。它返回對CListCtrl的引用,而不是對CListCtrl的引用。
至於解釋,我覺得樓主是看不懂的。讓我提出壹個簡單的觀點:
C++類的構造函數,如默認構造函數,如果以這種方式定義的話。
X類{
受保護:
x();
};
那麽我們不能創建它的實例:
X x//導致編譯錯誤。
原因是我們不能在外部使用構造函數,因為構造函數不是外部的。
那麽如果CListCtrl的構造函數也這樣做,能解釋樓主的怪題和正確答案嗎?有兩個正確答案的代碼盡量避免調用未公開的構造函數,這是寫代碼的初衷和答案。