point类中函数point (int a=0,int b=0) {x=a;y=b;} 是

2025-01-01 11:56:13
推荐回答(2个)
回答1:

》1、它的意思是不是后面定义point p1;时,p1的参数省略了?
写了int a=0, int b=0;表示,创建point类的时候,如果不写对应的参数,就把0作为默认参数。例如:point p1就是point p1(0,0)

》2、为什么会和函数point(){x=0;y=0;}产生二义性?

一个是有参数,一个是无参数。C++认为是两个函数。

》3、 point p1(1,1)又是怎么回事呢?会替换原来的0么?
你指定了参数,就采用你的参数。如果没有指定参数,就采用函数声明时的默认参数(你这里是0)

》 4、point (int a=0,int b) 和point (int a,int b=0) 是不是都是缺省参数构造函数?

第二个是。第一个不是。设置缺省参数,必须保证此参数后面的参数都有默认参数。
你见过point p1(,5);这样的写法吗? :)

》5、point (int a,int b) 就不是了吧?
没有默认参数。(可以看成普通的构造函数)

回答2:

看不明白、、