2015-11-08 119 views
-1

所以我想要做一个程序,其中我输入3个值存储在一个对象和第四个值,我从2其他值生成,我将该对象存储到一个向量。 这个问题是,我从生成签名函数得到一个错误,我不知道问题是什么。我认为这可能有些事要做,因为我没有做过很多涉及这些的编程,所以我声明了头文件和其他cpp文件。所以我要问,看看有没有人可以看到我到目前为止所做的事情有什么问题。 我发现了错误LNK1120 1无法解析的外部,而第二个是LNK2019解析的外部符号声明头文件和cpp文件C++

Project.cpp

#include "stdafx.h" 
#include <iostream> 
#include <vector> 
#include <string> 
#include <cstdlib> 
#include "constants.h" 
using namespace std; 
     int main() 
      { 
        vector<Data> dataVector; 
        struct Data newdata; 
        newdata.fname = "testfname"; 
        newdata.lname = "testlname"; 
        //add signature 
        newdata.signature = generateSignature("testfname","testlname",dataVector); 
        newdata.height = 1.85; 
        dataVector.push_back(newdata); 
        for (int i = 0; i < dataVector.size();i++) { 
         cout << dataVector.at(i).fname << " " << dataVector.at(i).lname + " " + dataVector.at(i).signature << " " << dataVector.at(i).height << endl; 
        } 
      } 

constants.h

#pragma once 
#ifndef CONSTANTS_H 
#define CONSTANTS_H 
#include <string> 
#include <vector> 
using namespace std; 
struct Data { 
    string fname; 
    string lname; 
    string signature; 
    double height; 
}; 
string generateSignature(string fname, string lname, vector<Data>& data); 

#endif 

constants.cpp

#include "stdafx.h" 
#include "constants.h" 
#include <iostream> 
#include <string> 
#include <vector> 


using namespace std; 
string generateSignature(string fname, string lname, vector<Data>& data) { 
    string signature+=fname; 
    signature+="test123"; 

    //some random code for the vector 
    return signature; 
} 
+0

您会得到什么错误? – Downvoter

+0

最有可能是[什么是未定义的引用/无法解析的外部符号错误,我该如何解决它?]的副本(http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-外部符号错误和怎么办我修复),但既然你不告诉我们什么是错误实际上是:-P ... –

+0

我的不好!,第一个错误是:LLNK1120 1无法解析的外部和第二个是LNK2019未解析的外部符号 – user3611818

回答

0

你不能在声明中使用+ =。只需将string signature+=fname;更改为string signature=fname;