虚函数的一个例子

做了一个虚函数的例子。在父函数中指定了print是虚函数,那么父类就可以调用子类的print方法。
答案是:
A::construct
B::construct
This is B
B::destroy
A::destroy
请按任意键继续. . .

注意:
1,2,用指针或者引用将B传个A,虚函数生效。3直接值传递,不生效。




#include <iostream>
using namespace std;


class A
{
public:
A()
{
cout<<"A::construct"<<endl;
}
virtual ~A()
{
cout<<"A::destroy"<<endl;
}
virtual void print()
{
cout<<"This is A"<<endl;
}
};


class B : public A
{
public:
B()
{
cout<<"B::construct"<<endl;
}
~B()
{
cout<<"B::destroy"<<endl;
}
void print()
{
cout<<"This is B"<<endl;
}
};


void main()
{
//A a;
//a.print();
//B b;
//b.print();


//B b;
//A *a;  ---》调用B中的print   (1)
//a = &b;    
//a->print();


B b;
A &a = b;   //---》调用B中的print  (2)
a.print();


//B b;   
//A a;    ->>虚函数不会调用B中的print  (3)
//a = b;  
//a.print();
}















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值