您的位置:首页 > 其它

虚函数、抽象类及虚基类

2014-03-21 20:25 134 查看

虚函数、抽象类及虚基类

虚函数及抽象类:

派生类经常(但不总是)覆盖它继承的虚函数。如果没有覆盖,派生类会直接继承其在基类中的版本。

派生类可以在它覆盖的函数前使用virtual关键字,但不是非得这么做。

C++11允许派生类使用override关键字,显式地注明它重写了基类中的某个虚函数。


常见的不能声明为虚函数的有:非成员函数(含友元函数);静态成员函数;构造函数。

1.为什么C++不支持普通函数和友元函数为虚函数?

它们不能被继承。

2.为什么C++不支持构造函数为虚函数?

构造函数不能被继承,因而不能声明为virtual函数。

3.为什么C++不支持静态成员函数为虚函数?

语法规定。

虚基类

多继承时,多个基类中的同名成员在派生类中由于标示符不唯一而出现二义性。可通过类的作用域标示符或重载解决问题。

在多继承中,当派生类的一些直接基类又是从另一个共同基类派生而来时,会出现间接二义性。

解决办法:

虚基类。

普通的消除二义性办法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: