伙计们我是c ++的新手 我正在尝试创建一个类,这些是我的文件
//main.cpp
#include <iostream>
#include "testing/test.h"
#include <string>
using namespace std;
int main(void)
{
test c;
c.set_url("e");
}
test.h
#ifndef TEST_H_
#define TEST_H_
#include<string>
class test {
public:
void testing(string url);
};
#endif /* TEST_H_ */
//test.cpp
#include <iostream>
#include<string>
using namespace std;
void crawl::testing (string url) {
cout<< "i am from test class";
}
我收到错误:'string'尚未声明错误
答案 0 :(得分:5)
问题是您需要使用string
的完全限定名称,因为未导入std
命名空间
class test {
public:
void testing(std::string url);
};
请避免使用testing.h文件中的std
命名空间来解决此问题。这通常是不好的做法,因为它可以改变名称的解决方式。在头文件中限定名称更安全,虽然有点烦人。
答案 1 :(得分:1)
您获得的错误来自于未在头文件中使用命名空间std,即。 std::string
并且在包含头文件(或标题)之前没有using namespace std;
。
命令using namespace std;
假设某个类可能在此命名空间中,但它仅适用于命令后的所有用途。
如果你这样做了,它也会起作用,虽然一般来说这是不好的形式。
#include <string>
using namespace std;
#include "testing/test.h"
另外,不要忘记将test.h包含在test.cpp中。