當前位置:編程學習大全網 - 編程軟體 - qt裏的壹些語句不懂,和壹個指針問題;求解釋~~

qt裏的壹些語句不懂,和壹個指針問題;求解釋~~

1、A *c;A是自己定義的類,這裏是定義了類型為A*的指針c嗎?

這裏表示定義了類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;

從妳的問題可以看出妳“對類與對象”,“指針與數組”,動態內存空間申請掌握的並不好,下去壹定要找相關資料好好研讀,不然妳以後的課程會很難學!

  • 上一篇:基於編程的自動化運維管理
  • 下一篇:地下城堡2黑暗覺醒如何刷錢地下城堡2刷錢技巧介紹
  • copyright 2024編程學習大全網