這裏表示定義了類A的對象指針
2、d = c->m();m是壹個定義好的函數,這句話是什麽意思?執行(c->m())後再把值賦給d?c->m()具體是什麽意思?他是不是和c.m等價?對箭頭操作符不太懂……
因為C是A類的對象指針(其實也是壹個對象),所以c可以->m(); 其中m()應該是類A的壹個成員函數吧,是的話就表示對函數的調用! c->m()不等價於c.m,而是等價於(*c).m() 。
至於d = c->m();應該是賦值語句,應為我沒看妳的源程序所以我無法給妳解答具體的含義。
3、c = new A(tr("/dev/video0"));A是定義好的類,這句話又是什麽意思?
因為c是A的壹個對象指針,所以c = new A(tr("/dev/video0"));就表示為c 動態分配壹個存儲A類 類型數據的內存,並用tr("/dev/video0")對它進行初始化。
內存空間申請
new 有三種格式
1、new 數據類型;
2、new 數據類型(初始化值);
3、new 數據類型 [常量表達式];
例如:
int *p=new int;
float *p=new float;
Student *p=new Student; //Student 是學生類
*p =4; //通過指針訪問申請的內存空間 他也等於int *p=new int(4);
cout<<*p<<endl; //則輸出4
還有就是 char*str=new char[100];//申請100個字符空間的數組,並把首地址賦給字符指針
最後還要註意釋放內存 delete[ ] str;
從妳的問題可以看出妳“對類與對象”,“指針與數組”,動態內存空間申請掌握的並不好,下去壹定要找相關資料好好研讀,不然妳以後的課程會很難學!