1:int& abc();函數中&是什麼作用?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
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讓它接受的參數類型也可以定製,這就解決了上面的問題
二者在行爲表現上沒有任何區別,有區別的僅僅是參數的使用而已