虚函数和纯虚函数的区别和作用
展开全部
虚函数和纯虚函数的区别:声明方式不同、实现方式不同、覆盖方式不同、特性不同、用法不同。
1、声明方式不同
虚函数可以在类中声明,也可以在类的外部声明,编译器会自动将它们转换为虚函数;但是纯虚函数只能在类中声明,而不能在类的外部声明。
2、实现方式不同
虚函数可以有实现,也可以没有实现;而纯虚函数没有实现,不可以有实现。
3、覆盖方式不同
虚函数可以在子类中覆盖,也可以不被覆盖;而纯虚函数必须在子类中覆盖,否则编译器将报错。
4、特性不同
虚函数可以被多态调用,也可以被静态调用;而纯虚函数只可以被多态调用,不可以被静态调用。
5、用法不同
虚函数可以用来实现多态,可以根据调用对象的实际类型,而不是根据声明类型来调用适当的函数。这样可以有效地实现代码的重用,避免了重复编码。
纯虚函数可以用来实现抽象类,一个抽象类是指一个类中定义了至少一个纯虚函数的类。这样可以定义一个抽象的接口层,子类可以通过实现纯虚函数来实现抽象接口的不同功能。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询