今天写代码编译出错:
class base {
public:
virtual void fn(int n, int m) {};
}
class son : public base {
public:
void fn(int n, int m =0);
}
原因是子类中的函数有默认参数,基类没有,修改为:
class base {
public:
virtual void fn(int n, int m = 0) {};
}
class son : public base {
public:
void fn(int n, int m = 0);
}
编译通过,总结如下:
倘若要加入默认参数,最好基类与子类保持一致。