我有以下代码:
class one
{
public:
typedef int (*funPtr) (void);
one()
{
// here I'm using map variable which is private.
}
~one(){}
private:
typedef map<int, funPtr> mMap;
mMap mapVar;
};
在这种情况下,类构造函数给出了未声明映射的错误。任何人都可以帮助我吗?
答案 0 :(得分:3)
typedef定义了一个类型......基本上是一个别名...如果你想声明一个类型为map的变量mMap你就可以了
map mMap;
答案 1 :(得分:1)
为了让编译器知道映射是什么,map的typedef应该在第一次使用之前放置。
答案 2 :(得分:1)
你没有在任何地方声明变量。
您需要使用 typedef来声明实际变量:
typedef map<int, funPtr> mMap;
mMap myMap;
我怀疑你根本不想使用typedef
,而只需要做:
map<int, funPtr> mMap;