3 回答

TA貢獻2051條經驗 獲得超10個贊
從你的問題中可以看出你對指針的運用還很模糊。
指針的定義
就像int a為定義一個int類型的變量a.
int * pnum 你這樣看 (int *) pnum 代表pnum是一個指向int數據類型的指針。
int *pnum = # //定義一個int類型指針pnum 并把num的地址賦給pnum。
指針的使用
使用時與定義不一樣,這時的*不能和定義時的* 混亂為一談。
* pnum是取該指針指向的數據的值。
int incr10(int* pnum) 這樣看 int incr10((int*) pnum)
而不是int incr10(int (* pnum)) 你就很清楚了。
這個函數的參數是int * 所以incr10(pnum)OK。
指針是C語言比較精髓的地方,你現在對指針使用過程中有很多還不是很清楚。
仔細看一下書,仔細。多看,多寫,多想,會有很多收獲的
曾經的我就是這么過來的。

TA貢獻1811條經驗 獲得超6個贊
BaseEllipse(double x0=0,double y0=0):x(x0),y(y0){}就是這個類的構造函數,冒號后面的是類成員的初始式。如果類成員中有類對象,則在冒號后面可以一個一個地調用類對象的構造函數。
1 對于double這種類型,可以選擇使用初始式(就是上面的方法)或者使用賦值(就是在函數體里 面對 x y 進行賦值);
2 但是前者的方式(冒號后面跟初始式)對于
a 沒有默認構造函數的對象
b const成員和引用成員
是必不可少的。
3 使用初始式除了可以使得初始化的情況更加明顯,有時候還可能帶來效率上的優勢,例如要初始化的對象是string的時候。
- 3 回答
- 0 關注
- 350 瀏覽
添加回答
舉報