C++有一句typedef没看懂

是用于工厂类的,部分上下文是这样的:

typedef ActorComponent *(*ActorComponentCreator)(void);
typedef std::map<std::string, ActorComponentCreator> ActorComponent CreatorMap;

第一句我能看懂,但是第二句为什么后面还有个ActorComponent?这句的意思难道不是把那个map命名为CreatorMap么?

ActorComponent 是map<> 变量名

以上写法有问题,lz不要错误的理解了。

第二个应该就是一个比较器

第一个是代表一个函数,如果去掉第一个*,那么他就是函数指针。

CreatorMap 就相当于 std::map ActorComponent

std::map ActorComponent 定义了一个map,后面起了个别名