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 关注
- 358 浏览
添加回答
举报