有關引用以及LoadBitmap幾個容易混淆的問題

1int& 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是一個變量,所以,經過賦值以後jx的值變化,在操作符重載=號中這種方式要經常用到,所以掌握這個知識還是很有必要di

2CBitmap::LoadBitmap( LPCTSTR lpszResourceName )參數到底是什麼意思?

 

先看一個例子:

CBitmap bitmap;

bitmap.LoadBitmap(MAKEINTRESOURCE(IDB_BITMAP1));

MAKEINTRESOURCE的定義是(LPSTR)((DWORD)((WORD)(i)))就是把ID轉化成unsigned short int再轉換成unsigned long然後再強制轉化成字符串。這個LPCTSTR參數根本不是一個文件名,只是一個資源ID的強制轉化。

 

3CList<int,int&>CList<int int>有什麼區別?

 

"&主要是爲了提高以大型對象爲參數時的效率"

對一個大型對象,如果以傳值方式傳遞參數,則整個對象要被複制一份,有可能花很多時間,因此CList讓它接受的參數類型也可以定製,這就解決了上面的問題

 

 

二者在行爲表現上沒有任何區別,有區別的僅僅是參數的使用而已

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章