纯虚函数和虚函数的定义
时间: 2023-03-30 20:02:04 浏览: 90
纯虚函数和虚函数都是在基类中定义的,用于实现多态性。虚函数在基类中定义并且在派生类中重写,可以通过基类指针或引用调用派生类中的函数。而纯虚函数没有实现,只有声明,派生类必须实现它。在基类中定义纯虚函数的语法是在函数声明后加上 "= "。纯虚函数的存在使得基类成为抽象类,不能被实例化。
相关问题
纯虚函数和虚函数 缺省实现
纯虚函数和虚函数都可以有缺省实现。
对于纯虚函数,可以在基类中为其提供一个默认实现。这样,派生类可以选择是否重写该纯虚函数,如果不重写,则使用基类中提供的默认实现。基类中为纯虚函数提供默认实现的语法是在函数声明后面使用`= 0`来表示,但是在同一个类中不能同时存在纯虚函数和默认实现。
对于虚函数,可以直接在基类中提供一个具体的实现。这样,派生类如果没有重写该虚函数,则会使用基类中提供的缺省实现。派生类也可以选择重写虚函数,以实现自己的特定功能。
需要注意的是,纯虚函数和虚函数的缺省实现都是在基类中提供的,派生类可以选择是否重写或使用该实现。而在派生类中重新定义虚函数时,可以选择调用基类的实现,也可以完全重写自己的实现。
纯虚函数和虚函数的代码定义
纯虚函数和虚函数都是在基类中定义的函数,它们的主要区别在于纯虚函数没有实现,而虚函数有默认实现。纯虚函数的定义方式是在函数声明后加上 "= ",例如:
virtual void func() = ;
而虚函数的定义方式是在函数声明前加上 "virtual" 关键字,例如:
virtual void func() {
// 默认实现
}
需要注意的是,只有类中至少有一个纯虚函数,该类才是抽象类,不能被实例化。