c++之:基类的指针指向派生类对象

基类的指针指向派生类的对象,调用函数时:
①成员函数为虚函数,则调用派生类中的成员函数,找真正实现的函数
②成员函数不是虚函数,则调用基类中的成员函数

#include "iostream" 
using namespace std; 
 
class A 
{ 
    int x; 
public: 
    A(int i) {x=i;} 
    void show() 
    { 
        cout<<"A class show():x="<<x<<endl; 
    } 
    virtual void display() 
    { 
        cout<<"A class virtual display():x="<<x<<endl; 
    } 
}; 
 
class B:public A 
{ 
    int y; 
public: 
    B(int i,int j):A(i) { y=j;} 
    void show() 
    { 
        cout<<"B class show(): y="<<y<<endl; 
    } 
    void display()//前面有无virtual都可以 
    { 
        cout<<"B class virtual display():y="<<y<<endl; 
    } 
 
}; 
int main() 
{ 
    A a(5),*pa,*pb; 
    A c(60);
    B b(10,20); 
    pa=&b; 
    pb=&c;
    pb->show();
    pb->display();
    pa->show(); 
    pa->display(); 
    
    return 0; 
} 

结果:

A class show():x=60
A class virtual display():x=60
A class show():x=10
B class virtual display():y=20
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值