摘要:
构造函数能不能是虚函数:答案:不能解释一下:一、1. 从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。2. 从使用角度 虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数本身就是要初始化实例,那使用虚函数也没有实际意义呀。所以构造函数没有必要是虚函数。二、虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成调用子类的那个成员函数。而构造函数是在创... 阅读全文
摘要:
意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。抽象工厂模式重点在于“一系列”,即多个对象之间存在某种联系或者是组成一个整体的各个部分。通常在抽象工厂的实现过程中,采用工厂方法模式对每个单独的对象进行抽象。抽象工厂模式将一系列对象的构造行为抽象出来,这样可以很容易的在多个系列之间进行切换。例如一个游戏有三个Boss,每个boss都有特定的攻击方式和防守动作。这个游戏分为简单,普通,困难模式,那么就可以使用抽象工厂模式对这个系统建模,只要用户选择了特定的难度之后,就采用选定的难度的工厂去创建一系列的Boss出来。而单个Boss的攻击和防守行为则可以工厂方法模式来建模,实 阅读全文