【发布时间】:2014-08-22 09:55:41
【问题描述】:
typedef Class *(createClassFunction)(void)(或其他变体是typedef Class* (__stdcall *CreateClassFunction)(void))代表什么?
这是什么意思?我该怎么解释呢?
尤其是在工厂模式的上下文中......
【问题讨论】:
-
阅读函数指针。
-
定义了一个函数指针类型createClassFunction,它返回指向Class的指针,这样你就可以声明一个createClassFunction类型的变量,并分配一个该函数的实际实现,这样每次调用时,例如实例化 Class 对象。
-
完成这个:
__stdcall修饰符告诉编译器使用特定的调用约定(如何传递参数,谁负责堆栈清理)。然而,这对于高级代码通常是完全不感兴趣的,编译器通常会为您选择正确的。除此之外,如果可能的话,通常还可以通过编译器标志告诉编译器将每次调用都设为__fastcall;未指定调用约定的另一个原因。
标签: c++ class typedef factory-pattern instances