注册 登录
编程论坛 C++教室

头文件编译错误问题

sixmore 发布于 2011-02-24 23:38, 749 次点击
编译这样一个头文件时,提示红色行有很多错误
 #ifndef GUARD_split
 #define GUARD_split
 #include<vector>
 #include<string>
 std::vector<string> split( const std::string&);
#endif

接着 加了一句 using namespace std;编译就没问题了, 分析应该是std::string有问题,请问应该怎么修改才行?
 #ifndef GUARD_split
 #define GUARD_split
 #include<vector>
 #include<string>
 using namespace std;
 vector<string> split( const string&);
 #endif
2 回复
#2
rjsp2011-02-25 08:23
std::vector<string> split( const std::string&);
改为
std::vector<std::string> split( const std::string&);

另外,最重要的是,你应该贴出编译器给出的错误信息以供别人参考。
#3
homelove2011-02-25 09:56
标准c++中的所有类都存放在命名空间std里面。所以有两种修改方案,
一种是在每个类前面都显示加上std命名空间:如std::vector   std::string
另一种,是在开头先声明使用std, 如using namespace std;然后就可以在文件中直接用vector或string
一般采用第2种方案。
方案一:
程序代码:
#ifndef GUARD_split
#define GUARD_split
#include<vector>
#include<string>
std::vector<std::string> split( const std::string&);
#endif
方案二:
程序代码:
#ifndef GUARD_split
#define GUARD_split
#include<vector>
#include<string>
using namespace std;
vector<string> split( const string&);
#endif


1