奇怪的铸造行为
|
有人可以解释代码的输出。
#include <iostream>
using namespace std;
class First {
public:
int a;
First() {};
First(int a) {
this->a = a;
}
int getA() {
return a;
}
virtual int getB() {
cout << \"getB() from super class...\" << endl;
return 0;
}
};
class Second : public First {
public:
int b;
Second(int b) {
this->b = b;
}
int getB() {
cout << \"getB() from child class...\" << endl;
return b;
}
};
int main() {
First* t = new Second(2);
First* cTest = dynamic_cast<First*>(t);
cout << cTest->getB() << endl;
}
我希望超类的方法会因为强制转换为First而被调用。
提前致谢
问候塞巴斯蒂安
没有找到相关结果
已邀请:
4 个回复
薄扩络拜
在基类中是
,因此无论您具有指向基址的指针还是指向派生的指针,都可以获取派生的实现。 (这就是多态的全部目的。)
吐兄
蹄渭信妥扳
捻盒愧杯