Chinaunix

标题: 虚函数的疑惑 [打印本页]

作者: bandaotidejia    时间: 2016-01-13 18:21
标题: 虚函数的疑惑
本帖最后由 bandaotidejia 于 2016-01-13 18:26 编辑

析构定义成虚函数其实是:如果不这样基类指针操作子类时会有内存泄漏。但是为什么要基类指针操作子类?

经常看到一个基类类型的指针,但是new的却是子类,这样有什么好处?
比如A是B的父类
A *tmp = new B;
作者: VIP_fuck    时间: 2016-01-13 18:23
回复 1# bandaotidejia


    可以搜一下 “简单工厂”模式
作者: hellioncu    时间: 2016-01-13 21:12
如果不用基类指针,那还要虚函数干什么
作者: fender0107401    时间: 2016-01-13 21:21
好处就是你可以用一个指针来指好多子类型啊,然后每个子类都实现一个不同的虚函数出来,这样多好玩。
作者: folklore    时间: 2016-01-13 21:28
比如一个基类是水果, 子类为苹果, 梨子、、、

其一:
我就可以分配一个 指向水果批针的数组, 然后用 for遍历这个数组。 完成一次性吃很多不同水果的目的。

其二
Plugin应用就是典型的你只知道 A, 不知道B的例子, 因为你使用A的时候, B还没开发呢。。。
作者: selfrun    时间: 2016-01-14 09:10
google DIP原则
作者: seanking1987    时间: 2016-01-14 09:25
C++多态
作者: bandaotidejia    时间: 2016-01-14 10:20
多谢各位,理解了
作者: linux_c_py_php    时间: 2016-01-14 10:59
这是C++的灵魂,抽象。
作者: lxyscls    时间: 2016-01-14 11:23
没有多态,所有设计模式全部嗝屁




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2