C++中的二义基类的指针可以指向派生类吗?
时间: 2024-01-19 21:03:49 浏览: 75
C++基类指针和派生类指针之间的转换方法讲解
在C++中,如果一个派生类继承了多个具有相同名称的基类成员,那么在使用这些成员时就会出现二义性问题。此时,如果将二义性基类的指针指向派生类对象,就会导致编译器无法确定要访问哪个基类的成员,从而产生编译错误。
为了解决这个问题,可以在派生类中使用作用域解析运算符(::)来显式地指定要访问的基类成员。例如,假设派生类D继承了基类B1和B2,且这两个基类都有一个成员函数f(),那么在D中访问B1的f()可以使用B1::f()的方式,访问B2的f()可以使用B2::f()的方式。
总之,如果出现了二义基类的情况,就需要使用作用域解析运算符来明确指定要访问的基类成员,而不能直接将二义性基类的指针指向派生类对象。
阅读全文