cadre teacher

//为什么报[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;
}
  • 主函数 teacher_cadre 初始化 少了一个参数
  • teacher_cadre 构造方法初始化 cadre 少了一个参数
    完整如下:
//为什么报[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.

img


题主少写了一个“titel”。
2.

img

题主少了一个参数。

还有,我看了这个类也有点头疼,设定的参数太多,错误不好查找。
有两点建议给题主:
1.竖向写数据成员,这样格式好看些,找错误时也好找。

img

2.尽量把构造函数等的形参与类数据的名称设为不同,区分开,避免二义性。