2015-11-08 2 views
-1

Так что я пытаюсь сделать программу, в которой я ввожу 3 значения, которые хранятся в объекте, и четвертое значение, которое я генерирую из 2 других значений, и я храню этот объект в вектор. Эта проблема заключается в том, что я получаю сообщение об ошибке от функции generatesignature, и я не знаю, в чем проблема. Я думаю, что это может что-то сделать, как я объявляю файл заголовка и другой файл cpp, так как я havent сделал много программирования с их участием. Поэтому я прошу выяснить, не может ли кто-нибудь увидеть что-то не так с тем, что я сделал до сих пор. Ошибки я получаю являются 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- external-symbol-error-and-how-do-i-fix), но так как вы не говорите нам, что на самом деле ошибка: -P ... –

+0

Моя ошибка !, первая ошибка: LLNK1120 1 неразрешенные внешние и второй - LNK2019 неразрешенный внешний символ – user3611818

ответ

0

Вы не можете использовать + = в декларации. Просто измените string signature+=fname; на string signature=fname;

Смежные вопросы