Visual Studio 2015:C ++单独的类声明和实现

时间:2019-09-16 13:03:02

标签: c++ header-files implementation lnk2019

我使用的C ++ IDE的最新版本是VC98,所以很多事情都发生了变化,我感到困惑。

我正在尝试创建一个类MyParser。我在解决方案资源管理器的MyParser.h中有其头文件Header Files,在MyParser.cpp中有源文件Source Files

MyParser.h如下所示。

#include <string>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>

using namespace std;

class MyParser
{
private:
    boost::property_tree::ptree pt;

public:
    MyParser(string str);
};

MyParser.cpp是:

#include "MyParser.h"
#include <iostream>

using namespace std;

MyParser::MyParser(std::string str)
{
    boost::property_tree::read_xml(str, this->pt);
}

main.cpp(在同一解决方案下的另一个项目中)是

#include <string>
#include <iostream>
#include "MyParser.h"

using namespace std;

int main()
{
    string content = "some xml string.....";

    MyParser parser = MyParser(content);

    return 0;
}

然后我遇到了LNK2019错误:

  

未解析的外部符号“ public:__cdecl   MyParser :: MyParser(class std :: basic_string,class std :: allocator>)“   (?? 0MyParser @@ QEAA @ V?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@@ Z)   在函数主测试C:\ MySpace \ test \ test.obj

中引用

但是,一旦我将构造函数的实现转移到MyParser.h中,错误就会消失。

有人可以向我指出我的代码/配置有什么问题吗?非常感谢

0 个答案:

没有答案