關於const的一點小細節

2021-09-30 08:15:52 字數 548 閱讀 6065

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 ...