[英]declaration of header and cpp files c++
因此,我正在尝试编写一个程序,其中我输入存储在对象中的 3 个值和从其他值中的 2 个生成的第四个值,然后将该对象存储到向量中。 那个问题是我从 generatesignature 函数中得到一个错误,我不知道问题是什么。 我认为这可能与我如何声明头文件和其他 cpp 文件有关,因为我还没有做过很多涉及这些的编程。 所以我想看看是否有人能看出我到目前为止所做的事情有什么问题。 我得到的错误是 LNK1120 1 未解析的外部符号,第二个是 LNK2019 未解析的外部符号
项目.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;
}
}
常数.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
常量.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;
}
您不能在声明中使用 +=。 只需更改string signature+=fname;
到string signature=fname;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.