C++的虚函数和代码结构

我曾听有人写了一句话,说明了虚函数的作用,是一个被子类初始化的父类指针想调用其子类实现的函数的一种实现方式,就是虚函数。意思就是Father* pFa = new Son(); pFa->Run()时,是儿子在跑,并不是父亲的跑。事实上,我们声明一个指针,如果用指针调用它自己拥有的函数,但有时候,我们并是这样,当此指针并不是自己所属的类去初始化时,而被子类的构造函数初始化时,就出现两种情况,如果函数不是虚函数,则调用指针所在类所拥有的函数,而如果函数是虚函数,则调用初始化的那个类的函数。

虚函数这样一种简单的调用方式,却成就无数优秀的代码结构。父亲提出了希望,但却实现了一点点,儿子继承大志,实现了更多,当认为父亲实现的那一些还不足以成为一个雏形时,便认为是“虚”的了。很多的时候,我们声明了一个指针,却不着急着给它初始化,只赋值为NULL,却在真正要去让这个指针调用函数发挥作用时,才new出一个新类型的内存空间来填满这个指针,从时间来讲,我们只是延后了,但却保持了极大的灵活性,而我们当初声明它的时候,只不过为了告诉大家,我们有这个一个东西,只是没有实现罢了,只是一个愿景,在未来,我们会用丰硕的果实加以实现。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值