我有一个类a的方法Hello:
class A {
public:
void Hello(){
std::cout << "Hi from class A!" << std::endl;
}
};
然后我有一个继承类a的类B,并有自己的Hello方法:
class B : public A {
public:
void Hello(){
std::cout << "Hi from class B!" << std::endl;
}
};
我创建了一个B类的新对象,然后将其强制转换为a类的类型。
B myB;
A myA = static_cast<A>(myB);
我怎样才能让myA.Hello();
打印出"来自B类的Hi !"?
你应该使用引用并且可以调用Hello()
B myB;
A& myA = static_cast<A&>(myB);
myA.Hello();
功率:
Hi from class A!
如果您添加"virtual"类A的Hello()
virtual void Hello() {
可以得到如下输出:
Hi from class B!