+ -
当前位置:首页 → 问答吧 → 关于类中构造函数重载问题

关于类中构造函数重载问题

时间:2011-11-29

来源:互联网

include<iostream>
using namespace std;
class A{
public:
 A(){};//1
 A(int a=0,int b=0);//2
 private:
 int age;
 int weight;
};
A::A(int a=0,int=0){
  age=a;
  weight=b;
}
int main()
{
  A x
  A y(1,2);
return 0;

}为什么提示错误说x,构造函数有问题?为什么去掉2中形参的值却行了,给位高手能给我指出具体的重载情况区别不

作者: wzq1990413   发布时间: 2011-11-29

为什么提示错误说x,构造函数有问题?为什么去掉2中形参的值却行了,给位高手能给我指出具体的重载情况区别不

因为A x;调用的是无参数构造函数。。。因为你的两个构造函数都可以作为无参数构造函数调用,(第二个是全都用默认参数、)所以矛盾。。。

作者: mingliang1212   发布时间: 2011-11-29

C/C++ code
#include<iostream>
using namespace std;
class A{
public:
 //A(){};//1
 A(int a=0,int b=0);//2
 private:
 int age;
 int weight;
};
A::A(int a,int b){
  age=a;
  weight=b;
}
int main()
{
  A x;
  A y(1,2);
return 0;

}

你的第二个函数在参数值默认情况下就和第一个相同,导致A x;有歧义不知道调用哪一个函数

作者: qscool1987   发布时间: 2011-11-29

LS的你速度很快嘛

作者: qscool1987   发布时间: 2011-11-29