如何通过子类的对象,来运行基类的virtual函数,怎么办?
例如下面代码,创建一个B对象后,怎么通过B对象,运行基类的func()?
B b;
此处怎么运行func()来输出Hello?
- C/C++ code
Class A{ …… virtual void func() { cout<<"Hello"<<endl; }; ……}Class B:public A{ …… virtual void func() { cout<<"World"<<endl; }; ……}[解决办法]
class A
{
public:
virtual void fun()
{
cout<<"A-->Hello"<<endl ;
}
};
class B:public A
{
public:
virtual void fun()
{
cout<<"B-->Hello"<<endl ;
}
};
void main()
{
B b ;
b.A::fun();
}
楼主为啥类后面没有“;” 反倒成员方法后面有“;”,这个能实现访问基类的。
[解决办法]
static_cast<A>(b).func();