300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 非多态的继承情况下 基类指针可以指向派生类对象么?

非多态的继承情况下 基类指针可以指向派生类对象么?

时间:2024-02-12 06:32:31

相关推荐

非多态的继承情况下 基类指针可以指向派生类对象么?

class Base { // 基类public:Base(int aa=88) : a(aa) {}void f() { // 非virtualcout<<"Base"<<endl;}int a;};class Derived : public Base { // 派生类public:Derived(int ba= 77, int bb = 66) : a(ba), b(bb) {}void f() { // 非多态cout<<"Derived"<<endl;}int a;int b;};int main(){Base* p = new Derived();p->f(); // Base(*p).f(); // Basestatic_cast<Derived*>(p)->f(); // Derivedcout<<p->a<<endl; // 88 基类cout<<static_cast<Derived*>(p)->a<<endl; // 77cout<<static_cast<Derived*>(p)->b<<endl; // 66delete p;return 0;}

备注:非多态情况下,基类的指针可以指向派生类的对象,但是调用方法时,使用的是它本身类型的方法,因为他不符合多态的定义。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。