虚函数和纯虚函数几个注意点
虚函数的默认参数
虚函数默认参数的值,与当前指针类型有关,指针类型是啥,参数的值为哪个类中的值; 例如:
class A{
public :
virtual play(int arg
= 1){
cout
<< arg
<< endl
;
}
};
class B : public A
{
public :
virtual play(int arg
= 2){
cout
<< arg
<< endl
;
}
};
int main(){
A
*a
= new B();
B
*b
= new B();
a
.play();
b
.play();
delete a
;
delete b
;
return 0;
}
输出的结果是 1 2,而不是 2 2;
纯虚函数的用途
提高编码效率,在基类只需要定义接口而不需要实现;为了保证代码逻辑正确,明确调用函数,继承了抽象类的子类,必须实现纯虚函数才能实例化,否则也是抽象类;
2020/09/03 10:39 @luxurylu