1:int& abc();函數中&是什么作用?
int x = 0;
int &a(int &i)
{
i = - 1;。
return x ;
}
main()
{
int j=10;
a(j)=100;
//這時候j = -1,x = 100.了
}
就是這樣子,返回引用的話就是返回一個變量的地址里面的內容,就是真正地返回這個變量本身拉,它可以用作左值,以改變返回的引用的變量的值,j在進入函數后,函數中i和函數外的j是一個變量,返回的值和x是一個變量,所以,經過賦值以后j、x的值變化,在操作符重載=號中這種方式要經常用到,所以掌握這個知識還是很有必要di。
2:CBitmap::LoadBitmap( LPCTSTR lpszResourceName )參數到底是什么意思?
先看一個例子:
CBitmap bitmap;
bitmap.LoadBitmap(MAKEINTRESOURCE(IDB_BITMAP1));
MAKEINTRESOURCE的定義是(LPSTR)((DWORD)((WORD)(i)))就是把ID轉化成unsigned short int再轉換成unsigned long然后再強制轉化成字符串。這個LPCTSTR參數根本不是一個文件名,只是一個資源ID的強制轉化。
3:CList<int,int&>和CList<int int>有什么區別?
"加&主要是為了提高以大型對象為參數時的效率"
對一個大型對象,如果以傳值方式傳遞參數,則整個對象要被復制一份,有可能花很多時間,因此CList讓它接受的參數類型也可以定制,這就解決了上面的問題
二者在行為表現上沒有任何區別,有區別的僅僅是參數的使用而已
原文轉自:http://www.anti-gravitydesign.com