c++程序错误error LNK2001: unresolved external symbol "public: void __thiscall CEmp::print(void)&quo
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++程序错误error LNK2001: unresolved external symbol "public: void __thiscall CEmp::print(void)&quo相关的知识,希望对你有一定的参考价值。
在连接中出现了这4个错误
程序如下
#include "StdAfx.h"
#include "Emp.h"
int main(int argc, char* argv[])
char*name=NULL;
short age=0;
float salary=0;
name=new char[30];
CEmp emp[3];
for(int i=0;i<3;i++)
cout<<"输入第"<<i+1<<"员工的信息"<<endl;
cout<<"姓名";
cin>>name;
cout<<"年龄";
cin>>age;
cout<<"工资";
cin>>salary;
emp[i].set_name(name);
emp[i].set_age(age);
emp[i].set_salary(salary);
emp[i].print();
return 0;
#include "StdAfx.h"
#include "Emp.h"
CEmp::CEmp()
name=0;
age=0;
salary=0.0;
void CEmp::set_name(char*n)
name=new char[strlen(n)+1];
strcpy(name,n);
void CEmp::print()
cout<<"Name:"<<name;
cout<<"Age:"<<age;
cout<<"Salary:"<<salary<<endl;
CEmp::~CEmp()
class CEmp
public:
CEmp();
virtual ~CEmp()delete[]name;
void set_name(char*);
void set_age(short a)age=a;
void set_salary(float s)salary=s;
void print();
private:
char*name;
short age;
float salary;
;
是按照书上的例子一步步输入的,不知道为什么到了最后连接的时候就出问题了,谢谢
public:
CEmp();
virtual ~CEmp()delete[]name;
void set_name(char*);
void set_age(short a)age=a;
void set_salary(float s)salary=s;
void print();
private:
char*name;
short age;
float salary;
;
///////////////////////////////////////////////////////////////////////////////////////////
这个类应该放到Emp.h头文件里面,然后把剩余代码放Emp.cpp源文件里面,另外要把
CEmp::~CEmp()
去掉,因为类里面已经定义了析构函数,没其他大问题了,编译能够通过,能够正常运行追问
est.obj : error LNK2001: unresolved external symbol "public: void __thiscall CEmp::print(void)" (?print@CEmp@@QAEXXZ)
test.obj : error LNK2001: unresolved external symbol "public: void __thiscall CEmp::set_name(char *)" (?set_name@CEmp@@QAEXPAD@Z)
Debug/test.exe : fatal error LNK1120: 3 unresolved externals
我不知道你3个文件是怎么写的,如果写成一个文件是没问题的,在VS2005,VC编译都能运行
#include
#include
using namespace std;
class CEmp
public:
CEmp();
virtual ~CEmp()delete[]name;
void set_name(char*);
void set_age(short a)age=a;
void set_salary(float s)salary=s;
void print();
private:
char*name;
short age;
float salary;
;
CEmp::CEmp()
name=0;
age=0;
salary=0.0;
void CEmp::set_name(char*n)
name=new char[strlen(n)+1];
strcpy(name,n);
void CEmp::print()
cout>name;
cout>age;
cout>salary;
emp[i].set_name(name);
emp[i].set_age(age);
emp[i].set_salary(salary);
emp[i].print();
return 0;
以上是关于c++程序错误error LNK2001: unresolved external symbol "public: void __thiscall CEmp::print(void)&quo的主要内容,如果未能解决你的问题,请参考以下文章
c++程序错误error LNK2001: unresolved external symbol "public: void __thiscall CEmp::print(void)&quo
c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法
C++静态成员变量必须在类的定义之外进行声明 (error LNK2001: unresolved external symbol)
C++静态成员变量必须在类的定义之外进行声明 (error LNK2001: unresolved external symbol)
C++静态成员变量必须在类的定义之外进行声明 (error LNK2001: unresolved external symbol)
错误 1 error LNK2001: 无法解析的外部符号 _mainCRTStartup 错误 2 error LNK1120: 1 个无法解析的外部命