Move.h中
class Move
{
……
public:
Move(double a=0,double b=0); // sets x,y to a,b
……
};
main.cpp中
int main()
{
……
Move move1(4,5);
Move move2(2,1);
Move move3;
……
}
在move3的声明中,首先回去找Move类的无参构造方法,
但Move类中并无定义无参的构造方法,此时编译不会报错的原因是在
有参构造方法Move(double a=0,double b=0);中设置了默认值,故此时无参move3的
定义会使用这个有参构造方法并且参数为默认值
如果Move(double a=0,double b=0);函数声明没有设置默认值且Move中没有无参构造
方法时去无参定义一个move类则会报错。