Ошибка Е2285 в С++
При компиляции программы выдает ошибку в строке Prac_Batko object2(15, "Mark", 2, "Julia");
.
E2285 Could not find a match for 'Prac_Batko::Prac_Batko(int,char*,int,char*)'
Программка учебная, мой уровень - начальный в ООП, глаза уже просто не видят, где ошибка. Буду очень благодарна за подсказку.
class Pracivnyk{
int id;
char name[20];
public:
Pracivnyk(void){
cout<<"Constructor Pracivnyk"; id=0; strcpy(name,"void");
}
Pracivnyk(int a_id, char *nm){
cout<<"Constructor Pracivnyk"; id=a_id; strcpy(name, nm);
}
void assignid(int a_id){
id=a_id;
}
int accessid(void){
return id;
}
void assignName(char *nm){
strcpy(name, nm);
}
char *accessName(void){
return name;
}
};
class Batko_simeystva{
int kol_det;
public:
Batko_simeystva(void){
cout<<"Constructor Batko"; kol_det=0;
}
Batko_simeystva(int i_kol_det){
cout<<"Constructor Batko"; kol_det=i_kol_det;
}
void assignkol_det(int i_kol_det){
kol_det=i_kol_det;
}
int accesskol_det(void){
return kol_det;
}
};
class Prac_Batko: public Pracivnyk,public Batko_simeystva
{
char szena;
public:
Prac_Batko(void){
cout<<"Constructor Prac_Batko"; szena = 'Anna';
}
Prac_Batko(int a_id, char *nm, int i_kol_det, char sz): Pracivnyk(a_id, nm),Batko_simeystva(i_kol_det) {
cout<<"Constructor Prac_Batko"; szena = sz;
}
void assign(char sz){
szena=sz;
}
friend ostream& operator<<(ostream& os, Prac_Batko& Pd);
};
ostream& operator<<(ostream& os, Prac_Batko& Pd)
{
char sz;
os<<"id"<<Pd.accessid()<<"name"<<Pd.accessName()<<"Kol_det"<<Pd.accesskol_det()<<"Szena"<< sz;
return os;
}
main()
{
Prac_Batko object1; cout<<object1;
Prac_Batko object2(15, "Mark", 2, "Julia");
cout<<object2;
system("PAUSE");
}
Источник: Stack Overflow на русском