我遇到了编译问题。
但是我收到编译错误,我的理解是我做错了。
标题文件:
#ifndef AGENT_H
#define AGENT_H
using namespace std;
class Agent
{
public:
Agent(string);
virtual ~Agent();
private:
string name;
};
#endif /* AGENT_H */
代理类(Agent.cpp)
#include "Agent.h"
using namespace std;
Agent::Agent(string _name)
{
this->name = _name;
}
Agent::~Agent()
{
delete this->name;
}
我的主要:
#include <cstdlib>
#include <iostream>
#include "Agent.h"
using namespace std;
int main(int argc, char** argv)
{
Agent agent1("Danila");
return 0;
}
所以我得到了这样一个奇怪的错误:
undefined reference to `Agent::Agent(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
/main.cpp:17: undefined reference to `Agent::~Agent()'
/main.cpp:17: undefined reference to `Agent::~Agent()'
你们能帮助我理解那里的错误吗?
答案 0 :(得分:2)
您的标头文件中需要#include <string>
。
另外,为了更好的做法,请将using namespace
保留在.cpp文件中,如果有的话。
答案 1 :(得分:1)
您编译时没有告诉编译器Agent.cpp
。即你需要这样的东西,对于g ++:
$ g++ main.cpp Agent.cpp -o myprogram