关于c++中的多态控制,虚函数(virtual function)

其他的大致都和java中的类似,基类的指针去指向子类对象 ,只不过在java中貌似所有基类函数都被默认成为了虚函数

即:

class Father {...}

class Child extends Father{.....}

Father f = new Child();

f.function();

上述代码在java中执行,如果子类和父类都具有function这个方法的话,肯定是会调用子类的function方法的。

然而,这一点在c++中有很好的控制的。 代码:

// Test1.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "iostream" using namespace std; class Base{ public: virtual void lihanTest(){ cout<<"base function "; } }; class Child1:public Base{ void lihanTest(){ cout<<"child1 function"; } }; class Child2:public Base{ void lihanTest(){ cout<<"child2 function"; } }; int main(){ Base *b = new Child2; b->lihanTest(); }

基类中声明为虚函数,这么样,派生类的方法得以调用

若不声明为virtual的话,则会调用基类方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值