關於引用 的問題

2021-07-01 22:11:14 字數 813 閱讀 6800

#include using namespace std;

template class a ;

t g(t &a, t &b);

};template t a::g(t &a, t &b)

int main()

這時候會報錯說,

templat.cpp: in function 『int main()』:

templat.cpp:21:21: error: no matching function for call to 『a::g(int, int)』

templat.cpp:21:21: note: candidate is:

templat.cpp:13:3: note: t a::g(t&, t&) [with t = int]

templat.cpp:13:3: note:   no known conversion for argument 1 from 『int』 to 『int&』

但是如果在函式g的形參定義改為:

t g(const t &a,const  t &b);

就可以直接傳常數的了,我覺得是不是函式引用的問題,引用是乙個物件的別名,其就是這個物件只是換了個名字,但如果只傳個常數,該變數沒有名字,而且引用必須初始化,所以引起了該問題,但為什麼加const就可以傳常數了?

其實要不然改變了引用值, 原來常量是變還是不變呢,這麼一想就轉過來了,感覺原因還是引用對乙個物件來說不是乙個副本了,而就是這個物件,如果直接改變的話,常數值是不能改變的,所以const限定下引用值不變就ok了。所以還是得有&的概念才好

關於image引用的問題

今天遇到這個乙個奇怪的問題,session在登入後,在乙個有影象的頁面給清空了。百思不得其解,只有一行一行的調。最後鎖室到這一行。為什麼路徑為空會置session為空呢?仔細思考了一下,我認為是這樣的,客戶端請求伺服器時,如果頁面上有,會跟路徑再請求一次伺服器來找。舉個例子,假如我現在有這樣乙個目錄...

關於引用mshtml的問題

今天看了個驗證碼識別的 其中引用到了mshtml.dll,找了半天原來就是microsoft.mshtml.dll。查這個dll的時候還發現了好幾篇關於這個dll新增問題的文章。順便看了下,原來這個dll有三個,新增引用時要注意了。第一篇文章 1.新增引用的問題 一般在開發環境下會在三個地方存有mi...

關於OC中迴圈引用問題

在 mrc中我們經常遇到迴圈 retain 問題導致記憶體洩露。dog類 import class person inte ce dog nsobject property nonatomic retain person owner dog 類中有乙個 peson 型別的主人 void run en...