error LNK2001: unresolved external symbol "public: __thiscall Employee::Employee

冥钰炒鸡坑 2020-04-14 09:34:28
题目:声明包含5个元素的对象数组,每个元素都是employee类型的对象。(要求有构造函数和析构函数)可以用new和delete动态申请和释放内存。
#include<iostream>
#include<string>
using namespace std;
class Employee
{
public:
Employee();
Employee(string name1,string ad1="幸福街",string city1="幸福城",long int post1=688);
Employee(Employee &e);
void display();
void changeName();
~Employee();
private:
string name;
string ad;
string city;
long int post;
};
Employee::Employee(string name1,string ad1,string city1,long int post1):name(name1),ad(ad1),city(city1),post(post1)
{
cout<<"雇员"<<name<<"资料已建立"<<endl;
}
Employee::Employee(Employee &e)
{
name=e.name;
city=e.city;
ad=e.ad;
post=e.post;
cout<<"雇员"<<name<<"已构造"<<endl;
}
void Employee::display()
{
cout<<"姓名: "<<name<<endl;
cout<<"街道地址:"<<ad<<endl;
cout<<"城市: "<<city<<endl;
cout<<"邮政编号:"<<post<<endl;
}
void Employee::changeName()
{
cout<<"请输入新的名字"<<endl;
cin>>name;

}
Employee::~Employee()
{
cout<<"析构函数已调用\n翟应良1908020223"<<endl;
}
int main()
{
string name="张三",name2="李四",name3="王五",name4="刘六",name5="赵七";
long int post=461300;
Employee employee(name);
Employee lot[5]={employee,Employee(name2),Employee(name3),Employee(name4),Employee(name5)};
Employee *p=new Employee[5];
p=lot;
p[0].display();
p[0].changeName();
for(int i=0;i<5;i++)
{
p[i].display();
}
delete[] p;
return 0;
}
编译正确,连接时遇到错误 error LNK2001: unresolved external symbol "public: __thiscall Employee::Employee(void)" (??0Employee@@QAE@XZ)
Debug/对象数组.exe : fatal error LNK1120: 1 unresolved externals
当我不用动态申请时没有运行错误,并成功运行如下
#include<iostream>
#include<string>
using namespace std;
class Employee
{
public:
Employee();
Employee(string name1,string ad1="幸福街",string city1="幸福城",long int post1=688);
Employee(Employee &e);
void display();
void changeName();
~Employee();
private:
string name;
string ad;
string city;
long int post;
};
Employee::Employee(string name1,string ad1,string city1,long int post1):name(name1),ad(ad1),city(city1),post(post1)
{
cout<<"雇员"<<name<<"资料已建立"<<endl;
}
Employee::Employee(Employee &e)
{
name=e.name;
city=e.city;
ad=e.ad;
post=e.post;
cout<<"雇员"<<name<<"已构造"<<endl;
}
void Employee::display()
{
cout<<"姓名: "<<name<<endl;
cout<<"街道地址:"<<ad<<endl;
cout<<"城市: "<<city<<endl;
cout<<"邮政编号:"<<post<<endl;
}
void Employee::changeName()
{
cout<<"请输入新的名字"<<endl;
cin>>name;

}
Employee::~Employee()
{
cout<<"析构函数已调用\n翟应良1908020223"<<endl;
}
int main()
{
string name="张三",name2="李四",name3="王五",name4="刘六",name5="赵七";
long int post=461300;
Employee employee(name);
Employee lot[5]={employee,Employee(name2),Employee(name3),Employee(name4),Employee(name5)};
lot[0].display();
lot[0].changeName();
for(int i=0;i<5;i++)
{
lot[i].display();
}
return 0;
}
实验截图

请问怎么回事?
...全文
135 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
冥钰炒鸡坑 2020-04-15
  • 打赏
  • 举报
回复
引用 1 楼 真相重于对错 的回复:
Employee() 构造函数只有声明,没有定义
果然,
冥钰炒鸡坑 2020-04-14
  • 打赏
  • 举报
回复
引用 1 楼 真相重于对错的回复:
Employee() 构造函数只有声明,没有定义
我改为Employee(){}试试
真相重于对错 2020-04-14
  • 打赏
  • 举报
回复
Employee() 构造函数只有声明,没有定义

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧