这几天在写鱼类抽象的时候,发现原来使用父类指针创建,替换,转化子类对象的方法原来叫工厂模式,以前常常用这种方法,终于发现原来是有学名的。(●’◡’●)
这里介绍一种使用宏定义函数来创建工厂函数的方法,借鉴了cocos的宏。
1、首先,我们要避免创建一个不能实例化的抽象父类,除去用RTTI,使用类id,我们还可以用如下方案:
template <typename T>
struct IsAbstract
{
typedef char SmallType;
typedef int LargeType;
template <typename U>
static char Test(U(*)[1]);
template <typename U&