1..
假如函式引數為引用型別的話,那麼傳給它乙個常量會發生錯誤,這是我們都知道的事實。但是在初學
c++時我們可能會誤給它傳乙個字面值,如例:則會發生
main.cpp(14) : error c2664:
「test」:
不能將引數1 從
「int
」轉換為
「int &
」的錯誤。
這是因為我們初學者經常會忽略字面值也是常量的原因,如果把
main
中**改為
intm = 3;test(m);
則當然不會出錯了。這應該也是傳遞引用的函式有const版本的時候,也會過載它的非const版本的原因吧。 2.
傳入的引數為const引用時,如果要返回該值,則返回值應修飾為const。如:
這樣會發生
main.cpp(8) : error c2440:
「return」:
無法從「
const int
」轉換為
「int &
」的錯誤。
makefile的一點小細節記錄
寫makefile時,指定輸出目錄後,結果導致了,不管依賴檔案是否改變,只要執行make命令就會執行編譯的過程,有點疑 惑,所以就做個小實驗,看下什麼問題導致的,具體原因已經在makefile檔案中解釋。順便也做了一下偽目標的實驗,問題 的描述和解決在makefile注釋中已經描述。這篇部落格的目的...
關於const在深入一點
首先,回顧一下關於const的基礎知識 使用const型別的變數被它限制了。一般分幾種。第一種 const char string x 賦值 這個string變數的內容就不可以被改變,如果改變了編譯器就會報錯。第二種 char const p x 賦值 指標常量 指標本身是常量,指向的位址不可以變化...
關於SQL語句Count的一點細節
count語句支援 列名 常量 變數,並且可以用distinct關鍵字修飾,並且count 列名 不會累計null的記錄。下面隨便用一些例子示範一下count的規則 比如對如下表做統計,所有列這裡都用sql variant型別來表示。if object id t test 0 drop table ...