point类中函数point (int a=0,int b=0) {x=a;y=b;} 是
point类中函数point(inta=0,intb=0){x=a;y=b;}是缺省参数构造函数1、它的意思是不是后面定义pointp1;时,p1的参数省略了?2、为什么...
point类中函数point (int a=0,int b=0) {x=a;y=b;} 是缺省参数构造函数 1、它的意思是不是后面定义point p1;时,p1的参数省略了? 2、为什么会和函数point(){x=0;y=0;}产生二义性? 3、 point p1(1,1)又是怎么回事呢?会替换原来的0么? 4、point (int a=0,int b) 和point (int a,int b=0) 是不是都是缺省参数构造函数? 5、point (int a,int b) 就不是了吧? 问题有点多,求指导。。。谢谢!
展开
2个回答
展开全部
》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) 就不是了吧?
没有默认参数。(可以看成普通的构造函数)
写了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) 就不是了吧?
没有默认参数。(可以看成普通的构造函数)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询