error LNK2019: 无法解析的外部符号 哪位大神帮帮看看啊?
#include<iostream>
#pragma comment(lib,"ws2_32.lib")
using std::cout;
using std::cin;
class Staff{
private:
int id;
char name[10];
int position;
int month;
double sal;
public:
Staff(){
id=0;
char name[10]="bag";
position=1;
month=1;
sal=0;
};
Staff(int Tid,char Tname[10],int Tposition);
void setID(int id);
void setName(char name[10]);
void setPosition(int position);
void setMonth(int month);
virtual void setSal(double sal);
double getSal();
void info(int pos,int Tid,char name[10]);
void search();
void countSal();
void recordInfo();
void recordSal();
~Staff();
};
class TechStaff :public Staff{
private:
double workTime;
public:
TechStaff(double WorkTime);
void setWorkTime(double time);
void countSal();
};
class SaleMan:public Staff{
private:
double salNum;
public:
SaleMan(double salN);
void countSal();
void setSalNum(double num);
};
class Secretary:public Staff{
private:
double baseSal;
double award;
public:
Secretary(double ad);
void countSal();
void setAward(double ad);
};
class Manager:public Staff{
protected:
double baseSal;
public:
Manager(){};
Manager(double bSal);
void countSal();
double getBaseSal();
};
class TechManager:public Manager
{
protected:
int adLevel;
public:
TechManager(){};
TechManager(int level);
void countSal();
void setAdLevel(int level);
};
这个个是头文件
#include"标头.h"
Staff::Staff(int Tid,char Tname[10],int Tposition){
id=Tid;
name[10]=Tname[10];
position=Tposition;
}
void Staff::setID(int Tid){
id=Tid;
};
void Staff::setName(char Tname[10]){
name[10]=Tname[10];
}
void Staff::setMonth(int Tmonth){
month=month;
}
void Staff::setPosition(int Tposition){
position=position;
}
void Staff::setSal(double Tsal){
sal=Tsal;
}
double Staff::getSal(){
return sal;
}
void Staff::info(int pos,int Tid,char Tname[10]){
Staff(Tid,Tname,pos);
std::string tec="Technician";
if(pos=1)
{
double Ttime;
cout<<"input your workTime\n";
cin>>Ttime;
TechStaff ts(Ttime);
ts.setWorkTime(Ttime);
ts.countSal();
}
}
TechStaff::TechStaff(double WorkTime):Staff(){
workTime=WorkTime;
};
void TechStaff::setWorkTime(double time){
workTime=time;
}
void TechStaff::countSal(){
double tempSal;
tempSal=workTime*35;
setSal(tempSal);
std::cout<<getSal();
}
SaleMan::SaleMan(double salN):Staff()
{
salNum=salN;
}
void SaleMan::setSalNum(double num)
{
salNum=num;
}
void SaleMan::countSal(){
double tempSal;
tempSal=salNum*0.05;
setSal(tempSal);
std::cout<<getSal();
}
Secretary::Secretary(double ad):Staff(){
baseSal=4000;
award=ad;
}
void Secretary::countSal(){
setSal(baseSal+award);
std::cout<<getSal();
}
void Secretary::setAward(double ad){
award=ad;
}
Manager::Manager(double bSal){
baseSal=bSal;
}
double Manager::getBaseSal(){
return baseSal;
}
TechManager::TechManager(int level){
adLevel=level;
}
void TechManager::countSal(){
double temp=baseSal+adLevel*1000;
}
void TechManager::setAdLevel(int level){
adLevel=level;
}
这个是实现
#include<iostream>
void show();
using namespace std;
#include"标头.h"
void main(){
show();
int id;
char name[10];
int position;
cin>>id;
cin>>name;
cin>>position;
Staff s;
s.info(position,id,name);
}
void show(){
std::cout<<"Input your information including your ID, Name, Position\n";
std::cout<<"posno: ";
std::cout<<"Position \n";
std::cout<<"No1-------Technician\n"
<<"No2-------Salman\n"
<<"No3-------Secretary\n"
<<"No4-------TechManager\n"
<<"No5-------SalManager\n";
}
这个是一个小作业 刚写到第一步就这样了 大神求助! error
[解决办法]
~Staff()的函数实现没有啊
[解决办法]
改成~Staff(){}就可以了
[解决办法]
这个错误信息写的很清楚了
你没有实现Staff类的析构函数。
如果不需要析构函数,可以将它从类的定义里去掉,既然写进去了就要实现