#class #oop #inheritance #friend-function #class-hierarchy
Вопрос:
Я хочу использовать функцию друга между двумя унаследованными классами иерархии, которые являются регулярными и Adhoc. Он восстанавливает ошибку, такую как : неизвестное имя типа ‘Adhoc’, друг void show(Обычный r, Adhoc a); Он показывает небольшую ошибку. Я не могу решить эту проблему.
#include<string>
using namespace std;
class Employee{
char name[25];
int empid;
public:
void gete();
};
class Regular: public Employee{
int basic,da,hra;
public:
void getr();
friend void show(Regular r, Adhoc a);
};
class Adhoc: public Employee{
int wages,hrs;
public:
void geta();
friend void show(Regular r, Adhoc a);
};
void Employee::gete(){
cin>>name>>empid;
}
void Regular::getr(){
cin>>basic>>da>>hra;
}
void Adhoc::geta(){
cin>>wages>>hrs;
}
void show(Regular r, Adhoc a){
cout<<r.basic<<endl<<r.da<<endl<<r.hra<<endl;
cout<<a.wages<<endl<<a.hrs<<endl;
cout<<(r.basic r.da r.hra)<<endl;
cout<<a.wages*a.hrs<<endl;
}
int main(){
Regular r;
Adhoc a;
r.gete();
r.getr();
a.geta();
show(r,a);
return 0;
}```