C++构造函数默认值问题

2025-03-04 01:44:09
推荐回答(2个)
回答1:

#include
using namespace std;
class A
{
public:

};
class B:public A
{
public:
//B(){cout<<0<//B(int=0){cout<<1< B(int=0,int=0){cout<<2<
};
int main()
{
B a;
//B b();
B c(1);//调用B(int){cout<<1< B d(1,2);//调用B(int,int){cout<<2<
return 0;
}

取消默认值,表示带参数的构造函数,根据所给实参来选择所对应构造函数进行调用,
因为
B c(1);
B d(1,2);

回答2:

B(){cout<<0< B(int=0){cout<<1< B(int=0,int=0){cout<<2<这三个函数 都可以通过 B()这个形式调用,这样,编译器就不知道你想要调用的是哪一个了,所以会会报错