【虚函数指针与虚函数列表】

当一个类定义了虚函数会隐式的创建一个自己的虚函数指针和虚函数列表。

class Base {

public:   

  virtual void f() { cout<<"Base::f" << endl; }

  virtual void g() { cout<<"Base::g" << endl; }

  virtual void h() { cout<<"Base::h" << endl; }

};


 

Derive继承了Base,重写了f(),新增了g1()

class Derive:public Base {

public:

  virtual void f() { cout <<"Derive::f"<< endl; }

  void g1() { cout <<"Derive::g1" << endl; }

};

 

多继承:Derive继承了Base1Base1,重写了f()

class Base1 {

public:   

  virtual void f() { cout <<"Base1::f"<< endl; }

  virtual void g() { cout <<"Base1::g"<< endl; }

  virtual void h() { cout <<"Base1::h"<< endl; }

};

class Base2 {

public:   

  virtual void f() { cout <<"Base2::f"<< endl; }

  virtual void g() { cout <<"Base2::g"<< endl; }

  virtual void h() { cout <<"Base2::h"<< endl; }

};

class Derive:public Base1, public Base2 {

public:   

  virtual void f() { cout <<"Derive::f"<< endl; }

};

 

Derive d;

Base1*b1 =&d;

Base2*b2 =&d;

b1->f();//Derive::f()

b2->f();//Derive::f()

b1->g();//Base1::g()

b2->g();//Base2::g()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值