c++ - LNK2019 - 未解决的外部符号错误
问题描述
编译我的主类时遇到问题。
//main.cpp
#include "Division.h"
int main() {
Division Root;
}
这是我的 Division.h
//Division.h
#pragma once
#include <string>
#include <windows.h>
class Division {
public:
Division();
Division(std::string Name, std::string PhoneNumber, std::string Description, Division& Parent);
private:
UUID GUID;
std::string Name;
std::string PhoneNumber;
std::string Description;
Division* Parent;
};
这是我的 Division.cpp
#include <string>
#include <windows.h>
using namespace std;
class Division {
public:
Division() {};
Division(string Name, string PhoneNumber, string Description, Division &Parent) {
UuidCreate(&GUID);
this->Name = Name;
this->PhoneNumber = PhoneNumber;
this->Description = Description;
this->Parent = &Parent;
}
private:
UUID GUID;
string Name;
string PhoneNumber;
string Description;
Division* Parent;
};
在主类中,我只想使用第一个构造函数创建一个空的 Division 对象。为什么我收到链接器错误?我究竟做错了什么?
解决方案
您已经在头文件和 cpp 文件中声明了 Division 两次。
您应该只在标题中有声明。
在 .cpp 文件中包含标题并定义方法
Division::Division() {}
Division::Division(std::string name, std::string phoneNumber, std::string description, Division &parent) {
UuidCreate(&GUID);
Name = name;
PhoneNumber = phoneNumber;
Description = description;
Parent = &parent;
}
为成员变量使用其他名称而不是参数也很好。
推荐阅读
- python - 数据摄取:将动态文件从 S3 加载到 Snowflake
- javascript - 修改 localStorage 出现跨域错误
- python - 在 JSON 上访问数组内的数据
- javascript - 请求未处理
- linux - 在 shell 脚本中按 enter 键并忽略 nohup 输出
- python - PyCharm 无法识别它刚刚创建的解释器
- unity3d - 我从未见过的非常不寻常的错误。统一
- arrays - Ant Design TreeSelect 将 API 中的数据映射到标题值键
- overlap - 需要帮助防止我的船在二维数组中相互重叠
- python - Pandas:将字符串列转换为时间戳