继承虚函数注意点

Posted 小菜鸡y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了继承虚函数注意点相关的知识,希望对你有一定的参考价值。

  • 哪些函数不能被继承:

构造函数、析构函数、拷贝构造函数、赋值操作符重载函数(赋值构造函数)

  • 哪些函数不能为虚函数:(定义虚函数一般是为了使用多态性质)

普通函数(非成员函数):不属于类的成员,不能用于多态,只能被重载。

静态成员函数:静态成员函数属于类的信息,被所有对象共享,不归某个对象所有,没有动态绑定的必要性。

构造函数:

友元函数:c++不支持友元函数的继承,因此不能在派生类中被覆盖,没有必要为虚函数

内联成员函数:内联函数在编译阶段内联展开,减少函数调用的代价,而虚函数用于多态,在运行时才能确定具体调用哪个函数,两者不可能统一。

赋值构造函数:虽然基类中可以将成员函数operator=定义为虚函数,但赋值构造函数要求形参类型和该类本身类型相同,因此积累中的赋值构造函数形参类型为基类类型,即使声明为虚函数,也不会执行子类的赋值操作符。

 

以上是关于继承虚函数注意点的主要内容,如果未能解决你的问题,请参考以下文章

继承一个抛出的纯虚函数

OOP2(虚函数/抽象基类/访问控制与继承)

面向对象程序设计——抽象基类,访问控制与继承,继承中的类作用域,拷贝函数与拷贝控制

C++多态(下)

对虚函数进行重载是啥意思?

c++中,虚函数能不能被继承