#define CREATE_FUNC(__TYPE__) \//反斜杠是转行符,因为宏不允许多行的,用转行符把下面的行拼到上一行。
static __TYPE__* create() \ // 写了一个静态的create方法。
{ \
__TYPE__ *pRet = new(std::nothrow) __TYPE__(); \ //std::no throw 不抛异常的调用构造函数
if (pRet && pRet->init()) \ //如果构造成功并且执行init函数也成功
{ \
pRet->autorelease(); \ //加入自动释放池
return pRet; \ //返回创建对象
} \
else \ //init函数执行失败,或者调用构造函数失败。
{ \
delete pRet; \ //释放内存
pRet = NULL; \
return NULL; \ //返回空指针
} \
}