在同一个类中一个构造函数可以调用另一个构造函数
class A
{
public:
A(int max){
max_ = max>0?max:10;
}
A(int max, int min): A(max)
{
min_ = min >0 && min< max : min:1;
}
A(int max, int min, int middle):A(max, min)
{
middle_ = middle > min && middle < max ? middle : 5;
}
private:
int min_;
int max_;
int middle_;
}
如果想在派生类中使用基类构造函数,之前需要这样
struct Base
{
int x_;
double y_;
Base(int x):x_(x){}
Base(int x, double y):x_(x),y_(y){}
}
struct Derived:Base
{
Derived(x):Base(x){}
Derived(int x, double y):Base(x,y){}
}
现在可以使用using Base::Base来声明使用基类的构造函数
struct Derived:Base
{
using Base::Base;
}