- 构造函数不能声明为虚函数,但是析构函数可以声明为虚函数,并且为了让父类中申请的资源得到释放,强烈建议将析构函数声明为虚函数。
- 内联函数会在预编译时会进行代码展开,省略函数调用,因此内联函数不能是虚函数。虽然使用inline和virtual共同修饰一个函数时能够通过编译,并在调用时会表现出虚函数的性质,但这是因为编译器在函数声明中遇到virtual关键字时,会选择忽略inline关键字,不进行代码展开。
- 虚函数体现了对象在运行时的多态性,而静态函数属于整个类,不属于某个对象,不能声明为虚函数。
- 虚函数具有继承性,一个函数如果在父类中被声明为虚函数,子类中仍然保留虚函数的属性,即使子类中没有使用virtual关键字显示地声明,父类中的虚函数在子类和子类的子类中仍然为虚函数。
虚函数的常识性问题
最新推荐文章于 2023-08-23 22:10:51 发布