日志20 虚函数与纯虚函数
定义:
类中声明前带有virtual关键字的函数称为虚函数:
class A {
virtual void example();
}
类中申明格式如下的函数称为纯虚函数:
class A {
virtual void example() = 0;
}
即在函数声明中含有virtual和= 0两个关键字。
区别
纯虚函数的特点:
只有声明,没有实现/定义
含有纯虚函数的类称为抽象类,抽象类不能被实例化
抽象类的派生类如果想成为具体的类(能够被实例化),则必须重写纯虚函数。
虚函数的特点:
必须实现/被定义
虚函数所在类可以被实例化
作用以及何时使用
C++中之所以引入虚函数和纯虚函数,就是为了通过函数重写(override)实现多态的效果。
类中声明前带有virtual关键字的函数称为虚函数:
class A {
virtual void example();
}
类中申明格式如下的函数称为纯虚函数:
class A {
virtual void example() = 0;
}
即在函数声明中含有virtual和= 0两个关键字。
区别
纯虚函数的特点:
只有声明,没有实现/定义
含有纯虚函数的类称为抽象类,抽象类不能被实例化
抽象类的派生类如果想成为具体的类(能够被实例化),则必须重写纯虚函数。
虚函数的特点:
必须实现/被定义
虚函数所在类可以被实例化
作用以及何时使用
C++中之所以引入虚函数和纯虚函数,就是为了通过函数重写(override)实现多态的效果。
全部评论
加油
相关推荐
想挣米的熊熊在刷题:单单看上面的问题,其实还是不难的,楼主得好好补补C++八股了,走C++最好必须深入学习STL底层。另外楼主现在想转go有点晚,暑假实习应该难找,秋招可能有点机会,可以先找份C++实习再谋划Golang走后端。但是难度还是不小,毕竟还要做go项目。
查看17道真题和解析 点赞 评论 收藏
分享