//为什么报[Error] no matching function for call to 'cadre::cadre(std::string&, int&, char&, std::string&, std::string&, std::string&)'这个错误啊
#include
#include
using namespace std;
class teacher
{
protected:
string name;int age; char sex;string address;string tel;
protected:
string titel;
public:
teacher(){}
teacher(string name,int age,char sex,string address,string tel,string titel):age(age),sex(sex),address(address),tel(tel),titel(titel)
{
this->name=name;
}
void display();
~teacher(){}
};
void teacher::display()
{
cout<<"name: "<"age: "<"sex: "<"address: "<"tel: "<"titel: "<class cadre
{
protected:
string name;int age; char sex;string address;string tel;string titel;string post;
public:
cadre(){}
cadre(string name,int age,char sex,string address,string tel,string titel,string post):age(age),sex(sex),address(address),tel(tel),titel(titel),post(post)
{
this->name=name;
}
~cadre(){}
};
class teacher_cadre:public teacher,public cadre
{
protected:
int wages;
public:
teacher_cadre(){}
teacher_cadre(string name,int age,char sex,string address,string tel,string titel,string post,int wages):teacher(name,age,sex,address,tel,titel),cadre(name,age,sex,address,tel,post)
{wages=wages;}
void show()
{
display();
cout<<"post: "<"wages: "<int main()
{
teacher_cadre grad1("wangli",24,'f',"jiangxi","11111111111","jiaoshi","6000");
grad1.show();
return 0;
}
//为什么报[Error] no matching function for call to 'cadre::cadre(std::string&, int&, char&, std::string&, std::string&, std::string&)'这个错误啊
#include <iostream>
#include<string>
using namespace std;
class teacher
{
protected:
string name;int age; char sex;string address;string tel;
protected:
string titel;
public:
teacher(){}
teacher(string name,int age,char sex,string address,string tel,string titel):age(age),sex(sex),address(address),tel(tel),titel(titel)
{
this->name=name;
}
void display();
~teacher(){}
};
void teacher::display()
{
cout<<"name: "<<name<<endl;
cout<<"age: "<<age<<endl;
cout<<"sex: "<<sex<<endl;
cout<<"address: "<<address<<endl;
cout<<"tel: "<<tel<<endl;
cout<<"titel: "<<titel<<endl;
}
class cadre
{
protected:
string name;int age; char sex;string address;string tel;string titel;string post;
public:
cadre(){}
cadre(string name,int age,char sex,string address,string tel,string titel,string post):age(age),sex(sex),address(address),tel(tel),titel(titel),post(post)
{
this->name=name;
}
~cadre(){}
};
class teacher_cadre:public teacher,public cadre
{
protected:
int wages;
public:
teacher_cadre(){}
teacher_cadre(string name,int age,char sex,string address,string tel,string titel,string post,int wages):teacher(name,age,sex,address,tel,titel),cadre(name,age,sex,address,tel, titel, post)
{wages=wages;}
void show()
{
display();
cout<<"post: "<<post<<endl;
cout<<"wages: "<<wages<<endl;
}
};
int main()
{
teacher_cadre grad1("wangli",24,'f',"jiangxi","11111111111","jiaoshi","6000", 100);
grad1.show();
return 0;
}
上面那位大哥说的没错,但可能题主也很难发现哪错了。
是错在下面了:
1.
题主少了一个参数。
还有,我看了这个类也有点头疼,设定的参数太多,错误不好查找。
有两点建议给题主:
1.竖向写数据成员,这样格式好看些,找错误时也好找。
2.尽量把构造函数等的形参与类数据的名称设为不同,区分开,避免二义性。