當前位置:編程學習大全網 - 編程軟體 - & amp為什麽語句GetListCtrl()在函數前面有壹個“& ”?

& amp為什麽語句GetListCtrl()在函數前面有壹個“& ”?

呵呵,據景鴻說,能解釋壹下為什麽不直接寫代碼嗎?

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的構造函數也這樣做,能解釋樓主的怪題和正確答案嗎?有兩個正確答案的代碼盡量避免調用未公開的構造函數,這是寫代碼的初衷和答案。

  • 上一篇:壹場突如其來的疫情,給民辦教育行業帶來了哪些沖擊?
  • 下一篇:matlab繪圖窗口選中不同曲線怎麽辦
  • copyright 2024編程學習大全網