我收到错误,我完全不知道为什么......我已经搜索过这个网站而找不到任何东西......
我的错误是:`LNK2019:未解析的外部符号“public:__thiscall campaign ::〜campaign(void)”(?? 1campaign @@ QAE @ XZ)在函数“public:__thiscall sale :: sale(int, int,int,class agent,class campaign)“
这是我的代码:
#include "stdafx.h";
#include <iostream>
#include "campaign.h";
//constructor
campaign::campaign()
{
campaign_name = "Campaign Undefined";
campaign_id = -1;
campaign_data_type = 0;
campaign_region_type = 0;
}
/////////////////////////////
//Accessor Functions //
///////////////////////////
std::string campaign::getName()
{
return campaign_name;
}
int campaign::getCampID()
{
return campaign_id;
}
int campaign::getDataType()
{
return campaign_data_type;
}
int campaign::getRegionType()
{
return campaign_region_type;
}
/////////////////////////////
//Mutator Functions //
///////////////////////////
void campaign::setName(std::string newName)
{
campaign_name = newName;
}
void campaign::setCampID(int newCampID)
{
campaign_id = newCampID;
}
void campaign::setDataType(int newDType)
{
campaign_data_type = newDType;
}
void campaign::setRegionType(int newRType)
{
campaign_region_type = newRType;
}
对不起超长的帖子,如果有人在这里有大约15分钟并且没有更好的事情要做,如果你能查看我的代码并给我一个关于我做错了什么的线索,我将不胜感激。谢谢:))
答案 0 :(得分:1)
您没有实施campain::~campain()
。由于您在头文件中声明了它,因此您应该提供定义。在你的情况下,析构函数不是必需的,编译器提供的默认值就足够了。因此,从头文件中删除声明。
答案 1 :(得分:1)
您已声明campaign
析构函数,但尚未在任何位置定义它:
class campaign
{
public:
campaign();
~campaign(); // you need a definition for this
您需要为它提供一个定义(一个实现),或者,如果您不需要析构函数执行任何特殊操作,请删除声明并让编译器自动为您提供析构函数。
答案 2 :(得分:1)
您没有为campaign
定义析构函数。把它放在你的实现文件中:
campaign::~campaign()
{
}
如果您希望您的类使用默认的析构函数,您可以从头文件中删除~campaign(void);
,然后不需要定义它。
答案 3 :(得分:0)
正如Nbr44已经评论过的那样,你没有定义你的campaign::~campaign
析构函数。您在头文件中声明了它但没有提供定义
答案 4 :(得分:0)
您没有实施广告系列析构函数。 如果它是微不足道的,不要声明它