C++作用域中使用容器与结构体如何弄呀>>>
C++作用域中使用容器与结构体怎么弄呀>>>
错误 1 error C2143: 语法错误 : 缺少“;”(在“.”的前面) d:\05project\august13_globa,l\august13_globa,l\t.cpp 5
错误 2 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\05project\august13_globa,l\august13_globa,l\t.cpp 5
错误 3 error C2371: “t::v2”: 重定义;不同的基类型 d:\05project\august13_globa,l\august13_globa,l\t.cpp 5
.h
#include <vector>
using namespace std;
namespace t{
extern int v;
typedef struct stu{
int val;
}stu;
vector<stu> v2;
};
.cpp
#include "stdafx.h"
#include "t.h"
namespace t{
stu val;
v2.push_back(val);
int t::v = 10;
};
------解决方案--------------------
命名空间是为了防止名字污染,在命名空间里只写声明和定义(变量、函数、类),对于函数和类的使用请写在命名空间外。。。
错误 1 error C2143: 语法错误 : 缺少“;”(在“.”的前面) d:\05project\august13_globa,l\august13_globa,l\t.cpp 5
错误 2 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\05project\august13_globa,l\august13_globa,l\t.cpp 5
错误 3 error C2371: “t::v2”: 重定义;不同的基类型 d:\05project\august13_globa,l\august13_globa,l\t.cpp 5
.h
#include <vector>
using namespace std;
namespace t{
extern int v;
typedef struct stu{
int val;
}stu;
vector<stu> v2;
};
.cpp
#include "stdafx.h"
#include "t.h"
namespace t{
stu val;
v2.push_back(val);
int t::v = 10;
};
------解决方案--------------------
命名空间是为了防止名字污染,在命名空间里只写声明和定义(变量、函数、类),对于函数和类的使用请写在命名空间外。。。