Здесь я могу сделать преобразование из emp
объекта класса в emp
объект класса. Но я не могу выполнить преобразование из employee
объекта класса в emp
объект класса - я добавил комментарий, где я получаю ошибку - 'setEmpID' is not a member of 'employee'
. что я должен сделать, чтобы устранить эту ошибку? (Я только готовлюсь к экзамену на C ++, и это единственный вопрос, который я не смог решить).
Редактировать - см. Определение программы. В отделе начисления заработной платы есть два класса Emp и Employee.Emp, в которых содержатся сведения об идентификаторе сотрудника и его / ее платежах. Класс отдела ресурсов сотрудника isHuman, содержащий только основные сведения о зарплате и полные личные данные, такие как имя супруга, количество детей, предыдущий опыт
сотрудник и т. д. Добавьте код в класс Emp, чтобы преобразование из одного типа
Возможен объект сотрудника в другой. При преобразовании элементы, которых нет в исходном классе (например, число дочерних элементов, если исходным классом является Employee), должны принимать значение по умолчанию.
#include<iostream.h>
#include<conio.h>
#include<string.h>
class employee;
class emp
{
private:
unsigned int empID;
public:
emp(){
empID=0;
}
emp(unsigned int x){
empID=x;
}
emp(employee tmp) {
// i am getting error here.
tmp.setEmpID(10);
}
void setEmpID(unsigned int x){
empID=x;
}
int getEmpID(){
return empID;
}
};
class employee : public emp {
private:
char name[30];
public:
employee();
employee(unsigned int x);
employee(unsigned int x,char y[]);
employee(emp tmp);
void display();
};
employee :: employee()
{
emp();
name[0]='\0';
}
employee :: employee(unsigned int x)
{
emp(x);
name[0]='\0';
}
employee :: employee(unsigned int x,char y[]) : emp(x)
{
strcpy(name,y);
}
employee :: employee(emp tmp) : emp( tmp.getEmpID() )
{
name[0]='\0';
}
void employee :: display(){
cout<<"No is -> "<<getEmpID()<<endl<<"Name -> "<<name;
}
void main() {
clrscr();
emp e1(10);
employee e2(10u,"nimita");
cout<<e1.getEmpID()<<endl;
e2.display();
getch();
}