大家帮忙看看fatal error LNK1120: 13 unresolved externals

elegant87 2008-08-02 12:14:37
//people.h文件
#ifndef PEOPLE_H
#define PEOPLE_H

#include<string>
using namespace std;

class People
{
public:
People();
People(const string nam,const string num);
People(const People& P);
void Put_in_People();
virtual void Display()const;
virtual string Get_number()const;
virtual ~People();
protected:
string name;//姓名
string number;//编号
string sex;//性别
};

class Student:virtual public People
{
public:
Student();
Student(const string nam,const string num,const string cno);
Student(const Student&S);
void Put_in_Student();
void Display()const;
string Get_number()const;
protected:
string classNO;//班号
};

class Teacher:virtual public People//将Teacher类设为virtual
{
public:
Teacher();
Teacher(const string nam,const string num,const string pri);
Teacher(const Teacher& T);
void Put_in_Teacher();
void Display()const;
string Get_number()const;
protected:
string principalship;//职务
};

class Graduate: virtual public Student//将Student类设为virtual
{
public:
Graduate();
Graduate(const string nam,const string num,const string cno,const string sub);
Graduate(const Graduate& G);
void Put_in_Graduate();
void Display()const;
string Get_number()const;
protected:
string subject;//专业
};

class TA:public Graduate,public Teacher
{
public:
TA();
TA(const string nam,const string num,const string cno,const string sub,const string pri);
TA(const TA& GT);
void Put_in_TA();
void Display()const;
string Get_number()const;
};

#endif


//people.cpp文件
#include"people.h"
#include<iostream>
#include<iomanip>

using namespace std;

People::People()
{

}

People::People(const string nam,const string num):name(nam),number(num)
{

}

People::People(const People& P)
{
name=P.name;
number=P.number;
}

void People::Put_in_People()
{
cout<<"请输入姓名: ";
cin>>name;
cout<<"请输入编号: ";
cin>>number;

}
void People::Display() const
{
cout<<name<<setw(5)<<number<<setw(5)<<sex<<setw(5);

}

string People::Get_number() const
{
return number;
}

People::~People(){}

Student::Student()
{

}
Student::Student(const string nam,const string num,const string cno):People(nam,num),classNO(cno)
{

}

Student::Student(const Student&S)
{
name=S.name;
number=S.number;
classNO=S.classNO;
}

void Student::Put_in_Student()
{
People::Put_in_People();
cout<<"请输入班号: ";
cin>>classNO;
}

void Student::Display() const
{
People::Display();
cout<<setw(5)<<classNO<<endl;
}
string Student::Get_number() const
{
return number;
}

Teacher::Teacher()
{

}

Teacher::Teacher(const string nam,const string num,const string pri):People(nam,num),principalship(pri)
{

}

Teacher::Teacher(const Teacher& T)
{
name=T.name;
number=T.number;
principalship=T.principalship;

}

void Teacher::Put_in_Teacher()
{
People::Put_in_People();
cout<<"请输入职务: ";
cin>>principalship;
}

void Teacher::Display() const
{
People::Display();
cout<<setw(5)<<principalship<<endl;
}

string Teacher::Get_number() const
{
return number;
}

Graduate::Graduate()
{

}

Graduate::Graduate(const string nam,const string num,const string cno,const string sub):Student(nam,num,cno),subject(sub)
{

}

Graduate::Graduate(const Graduate& G)
{
name=G.name;
number=G.number;
classNO=G.classNO;
subject=G.subject;

}

void Graduate::Put_in_Graduate()
{
People::Put_in_People();
cout<<"请输入专业: ";
cin>>subject;
}

void Graduate::Display() const
{
Student::Display();
cout<<setw(5)<<subject<<setw(5);
cout<<endl;
}

string Graduate::Get_number() const
{
return number;
}




TA::TA()
{

}

TA::TA(const string nam,const string num,const string cno,const string sub,const string pri):Graduate(nam,num,cno,sub),Teacher(nam,num,pri)
{

}
TA::TA(const TA >)
{
name=GT.name;
number=GT.number;
classNO=GT.classNO;
subject=GT.subject;
principalship=GT.principalship;

}

void TA::Put_in_TA()
{
Graduate::Put_in_Graduate();
cout<<"请输入职务: ";
cin>>principalship;
}

void TA::Display() const
{
Graduate::Display();
cout<<setw(5)<<principalship<<endl;
}

//main.cpp文件
#include"people.h"
#include<cstdlib>
#include<vector>
#include<iostream>

using namespace std;

void Input(vector<Student>&S,vector<Teacher>&T,vector<Graduate>&G,vector<TA>>);

void Display_Message(vector<Student>&S,vector<Teacher>&T,vector<Graduate>&G,vector<TA>>) ;

void Menu(vector<Student>&S,vector<Teacher>&T,vector<Graduate>&G,vector<TA>>);

int main()
{

vector<Student>S;
vector<Teacher>T;
vector<Graduate>G;
vector<TA>GT;
Menu(S,T,G,GT);
return 0;
}


void Input(vector<Student>&S,vector<Teacher>&T,vector<Graduate>&G,vector<TA>>)
{
char ch;
Student stu;
Teacher tea;
Graduate gra;
TA ta;
do
{
cout<<"请选择录入的信息: "<<endl;
cout<<"1.本科学生\t2.在校教师\t3.研究生\t4.助教生"<<endl;
cin>>ch;
switch(ch)
{
case'1':stu.Put_in_Student();S.push_back(stu);break;
case'2':tea.Put_in_Teacher();T.push_back(tea);break;
case'3':gra.Put_in_Graduate();G.push_back(gra);break;
case'4':ta.Put_in_TA();GT.push_back(ta);break;
default:cout<<"输入错误,请重新输入: ";
}
cout<<"继续录入吗?(y是/n否): ";
cin>>ch;
}while(ch=='y');
}

void Display_Message(vector<Student>&S,vector<Teacher>&T,vector<Graduate>&G,vector<TA>>)
{
char ch;
do
{
cout<<"请选择浏览的信息: ";
cout<<"1.本科学生\t2.在校教师\t3.研究生\t4.助教生"<<endl;
cin>>ch;
switch(ch)
{
case'1':
if(S.size()==0)
cout<<"没有本科学生的信息或者信息被删除!"<<endl;
else
{
cout<<"本科生的信息为: "<<endl;
cout<<"姓名\t学号\t性别\t生日\t身份证号\t班号"<<endl;
for(vector<Student>::iterator siter=S.begin();siter!=S.end();++siter)
siter->Display();
}
break;
case'2':
if(T.size()==0)
cout<<"没有教师的信息或者信息被删除!"<<endl;
else
{
cout<<"教师的信息为: "<<endl;
cout<<"姓名\t学号\t性别\t生日\t身份证号\t职务\t<<部门"<<endl;
for(vector<Teacher>::iterator titer=T.begin();titer!=T.end();++titer)
titer->Display();
}
break;
case'3':
if(G.size()==0)
cout<<"没有研究生的信息或者信息被删除!"<<endl;
else
{
cout<<"研究生的信息为: "<<endl;
cout<<"姓名\t学号\t性别\t生日\t身份证号\t班号\t专业\t<<导师"<<endl;
for(vector<Graduate>::iterator giter=G.begin();giter!=G.end();++giter)
giter->Display();
}
break;
case'4':
if(GT.size()==0)
cout<<"没有助教生的信息或者信息被删除!"<<endl;
else
{
cout<<"助教生的信息为: ";
cout<<"姓名\t学号\t性别\t生日\t身份证号\t班号\t专业\t<<导师\t职务\t<<部门"<<endl;
for(vector<TA>::iterator iter=GT.begin();iter!=GT.end();++iter)
iter->Display();
}
break;
default:
cout<<"输入错误,请重新输入: ";
}
cout<<"继续浏览吗?(y是/n否): ";
cin>>ch;
}while(ch=='y');
}

void Menu(vector<Student>&S,vector<Teacher>&T,vector<Graduate>&G,vector<TA>>)
{
char ch;
cout<<"\t\t\t************************"<<endl;
cout<<"\t\t\t欢迎使用学校人事管理系统"<<endl;
cout<<"\t\t\t************************"<<endl;
do{
cout<<"\t\t\t1.录入信息"<<endl;
cout<<"\t\t\t2.浏览信息"<<endl;
cout<<"\t\t\t3.查找信息"<<endl;
cout<<"\t\t\t4.修改信息"<<endl;
cout<<"\t\t\t5.保存信息"<<endl;
cout<<"\t\t\t0.退出系统"<<endl;
cout<<"请选择操作: ";
cin>>ch;
switch(ch)
{
case'1':Input(S,T,G,GT);break;
case'2':Display_Message(S,T,G,GT);break;
case'3':
case'4':
case'5':
case'0':cout<<"\t\t\t\t谢谢使用!"<<endl;system("pause");exit(0);break;
default:cout<<"输入错误,请重新输入: ";
}
}while(ch!='0');
}


编译时没有错误,但是连接时出现错误:

Debug/main.exe : fatal error LNK1120: 13 unresolved externals
Error executing link.exe.

main.exe - 14 error(s), 0 warning(s)
...全文
4358 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangsha312 2011-11-17
  • 打赏
  • 举报
回复
学习了。
luozhenfeiwin 2011-04-10
  • 打赏
  • 举报
回复
都是强人
lucifer329 2010-12-22
  • 打赏
  • 举报
回复
学习了
lijianging 2010-12-01
  • 打赏
  • 举报
回复
又学到了不少
qjcslgnhwayagain 2010-08-11
  • 打赏
  • 举报
回复
学习了
guoln1010 2010-07-01
  • 打赏
  • 举报
回复
学习了
lyzh04061135 2010-04-04
  • 打赏
  • 举报
回复
各位大侠再看看这个
错误 1 error LNK2019: 无法解析的外部符号 "void __cdecl quiksort<int>(int *,int,int)" (??$quiksort@H@@YAXPAHHH@Z),该符号在函数 _wmain 中被引用 Sort.obj Sort
错误 2 fatal error LNK1120: 1 个无法解析的外部命令 D:\lyzh\Project\C++\Sort\Debug\Sort.exe Sort
elegant87 2008-08-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 Demon__Hunter 的回复:]
C/C++ code
class TA:public Graduate,public Teacher
{
public:
TA();
TA(const string nam,const string num,const string cno,const string sub,const string pri);
TA(const TA& GT);
void Put_in_TA();
void Display()const;
string Get_number()const;这个函数在cpp中没有定义
};
[/Quote]

 
string TA::Get_number()const
{
return number;
}//定义了,但是是link错误!
机智的呆呆 2008-08-02
  • 打赏
  • 举报
回复

class TA:public Graduate,public Teacher
{
public:
TA();
TA(const string nam,const string num,const string cno,const string sub,const string pri);
TA(const TA& GT);
void Put_in_TA();
void Display()const;
string Get_number()const;这个函数在cpp中没有定义
};
elegant87 2008-08-02
  • 打赏
  • 举报
回复
是的,帖子太长了,贴不上了。
编译没有错误,但连接的时候出现错误:
Linking...
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall TA::Put_in_TA(void)" (?Put_in_TA@TA@@QAEXXZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall Graduate::Put_in_Graduate(void)" (?Put_in_Graduate@Graduate@@QAEXXZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall Teacher::Put_in_Teacher(void)" (?Put_in_Teacher@Teacher@@QAEXXZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall Student::Put_in_Student(void)" (?Put_in_Student@Student@@QAEXXZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall TA::TA(void)" (??0TA@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall Graduate::Graduate(void)" (??0Graduate@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall Teacher::Teacher(void)" (??0Teacher@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall Student::Student(void)" (??0Student@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall People::~People(void)" (??1People@@UAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall Student::Student(class Student const &)" (??0Student@@QAE@ABV0@@Z)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall Teacher::Teacher(class Teacher const &)" (??0Teacher@@QAE@ABV0@@Z)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall Graduate::Graduate(class Graduate const &)" (??0Graduate@@QAE@ABV0@@Z)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall TA::TA(class TA const &)" (??0TA@@QAE@ABV0@@Z)
Debug/main.exe : fatal error LNK1120: 13 unresolved externals
Error executing link.exe.

main.exe - 14 error(s), 0 warning(s)

帮忙看看吧!
AlwaysSLH 2008-08-02
  • 打赏
  • 举报
回复
呵呵,LZ的TA::Get_number()没有给出定义呀,所以连接时找不到它而报错
给个定义就可以了
femalelover 2008-08-02
  • 打赏
  • 举报
回复
Debug/main.exe : fatal error LNK1120: 13 unresolved externals
Error executing link.exe.

main.exe - 14 error(s), 0 warning(s)
---
这个不可能是全部错误信息吧? 最关键的信息你没贴出来.
AlwaysSLH 2008-08-02
  • 打赏
  • 举报
回复
先调一下看看
elegant87 2008-08-02
  • 打赏
  • 举报
回复
大家帮忙看看,小弟在看C++Primer,我写一个学校人事管理程序,
关于多重继承,虚基类,很多错误。用的是VC6.0编译器。
大家帮忙看看吧!分不够再加!
angelcm51 2008-08-02
  • 打赏
  • 举报
回复
LINK的问题
fibbery 2008-08-02
  • 打赏
  • 举报
回复
缺少链接库!有些符号找不到定义!
cjh3382700 2008-08-02
  • 打赏
  • 举报
回复
up
zhous001 2008-08-02
  • 打赏
  • 举报
回复
学习了..
wangdeqie 2008-08-02
  • 打赏
  • 举报
回复
1.开始你的14个错误是因为你没有把三个文合在一起。 解决方法:Project/Add To Project/File

2.然后再运行会出现2个错误:

"public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall TA::Get_number(void)const "
//提示你这出错了:TA::Get_number(void)const,回TA类里发现它没重写基类的Get_number函数



总结:要学会看错误提示信息!
elegant87 2008-08-02
  • 打赏
  • 举报
回复
能运行!谢谢你呀!这是为什么呢?
加载更多回复(15)

64,651

社区成员

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

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