C++ 工厂模式语法

标签 c++ factory-pattern

this question ,接受的答案使用以下语法:

typedef std::map<std::string, Base*(*)()> map_type;

谁能解释一下 (*) 是什么意思,我以前从没见过?

最佳答案

这是一个function pointer返回一个 Base 指针并且不带任何参数,例如

struct Base {};

Base* myfun() {
    return 0;
}

int main() {
    std::map<std::string, Base*(*)()> mymap;
    mymap.insert(std::make_pair("hello", myfun));
}

Example

关于C++ 工厂模式语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26400905/

相关文章:

c++ - 使 system() 产生的子进程在父进程收到终止信号并退出后继续运行

c++ - C++多线程中的锁和条件变量问题

c# - 从基类实例化派生类的通用工厂方法

java - 所有这些方法签名对于简单工厂模式都有效吗?

c# - native C++ 和 C# 互操作

c++ - 使用 Cygwin 编译 Corkscrew 时出现配置错误

c++ - FLTK 关闭窗口

java - 如何在 Java 中正确制作线程安全的单例工厂?

c++ - 模板类的工厂模式和模板类的新类型默认参数

c# - 这是表示抽象工厂模式的好例子吗