typedef std::map<int, CCtrlSM>是什么意思?
class A
{
private:
typedef std::map<int, CCtrlSM> TMapID2Ctrl;
TMapID2Ctrl* m_pMap;
}
请问上面的用意是什么啊?怎么用啊
[解决办法]
重定义类型,主要是为了书写简便,
typedef a b;
意思就是b是a的一个别名一样,两者表示的类型完全一样,这样的话如果a书写比较复杂,可以直接写个b就相当于a。结合你的例子就是TMapID2Ctrl就表示std::map<int ,CCtrlSM>这种类型,TMapID2Ctrl* m_pMap;
就相当于定义了一个std::map<int ,CCtrlSM> 指针变量m_pMap
[解决办法]
typedef是一个声明语句,不会产生执行代码。typedef就是给类型取个小名而已。
typedef std::map<int, CCtrlSM> TMapID2Ctrl; //TMapID2Ctrl是std::map<int, CCtrlSM>的小名