我的代码如下
#include <vector>
using namespace std;
...
class A {
NEW_TYPE a;
...
public:
typedef vector<int> NEW_TYPE;
...
}
错误说'NEW_TYPE'没有命名类型
有谁知道这是什么问题?
由于
答案 0 :(得分:3)
通常,C ++中的名称只有在声明之后才能使用:
typedef int foo;
foo x = 1; // OK
bar y = 2; // Error
typedef int bar; // too late
同样适用于你的班级。向上移动typedef:
class A
{
public:
typedef std::vector<int> NEW_TYPE;
private:
NEW_TYPE a;
// ...
public:
// ...
};