虚基类
在说明其作用前先看一段代码
从代码中可以看出类B C都继承了类A的iValue成员,因此类B C都有一个成员变量iValue ,而类D又继承了B C,这样类D就有一个重名的成员 iValue(一个是从类B中继承过来的,一个是从类C中继承过来的).在主函数中调用d.iValue 因为类D有一个重名的成员iValue编译器不知道调用 从谁继承过来的iValue所以就产生的二义性的问题.正确的做法应该是加上作用域限定符 d.B::iValue 表示调用从B类继承
本文介绍了C++中的虚基类、虚函数和纯虚函数的概念及其作用。虚基类解决了多继承时的二义性问题,确保只有一个副本占用内存。虚函数实现了动态联编,使得根据对象的实际类型调用相应的函数。纯虚函数则定义了抽象类,作为派生类必须实现的接口。文章通过代码示例帮助理解这些概念。
虚基类
在说明其作用前先看一段代码
从代码中可以看出类B C都继承了类A的iValue成员,因此类B C都有一个成员变量iValue ,而类D又继承了B C,这样类D就有一个重名的成员 iValue(一个是从类B中继承过来的,一个是从类C中继承过来的).在主函数中调用d.iValue 因为类D有一个重名的成员iValue编译器不知道调用 从谁继承过来的iValue所以就产生的二义性的问题.正确的做法应该是加上作用域限定符 d.B::iValue 表示调用从B类继承
2250

被折叠的 条评论
为什么被折叠?