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

来源:互联网 发布:网络综艺节目定位论文 编辑:程序博客网 时间:2024/05/24 04:32

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

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