编写程序:
创建一个Teacher,以公有方式继承与Person类
保护类型数据成员
int staffId; //员工ID
double salary ;//工资
公有成员方法:
1、有参构造函数(初始化列表调用父类的构造函数)
2、void printTeacher()方法体调用父类的printPerson(),并输出staffId及salary
输入:
无
输出:
jack M 22
110 3888
#include <iostream>
#include <string>
using namespace std;
class Person{
protected:
string name;
char sex;
int age;
public:
Person(){
}
Person(string name,char sex,int age):name(name),sex(sex),age(age){
}
void printPerson(){
cout<<name<<" "<<sex<<" "<<age<<endl;
}
};
class Teacher:public Person{//继承
protected:
int staffId;//员工
double salary;工资
public:
Teacher(string name,char sex,int age,double st,double sa):Person(name,sex,age){
staffId=st;
salary=sa;
}
void printTeacher(){
Person::printPerson();//调用父类函数
cout<<staffId<<" "<<salary<<endl;
}
};
int main(void) {
Teacher teacher("jack",'M',22,110,3888);
teacher.printTeacher();
return 0;
}
编写程序:
创建一个Professor,以公有方式分别继承与Person类,Teacher类
保护类型数据成员:
string research; //研究方向
公有成员方法:
1、有参构造函数(初始化列表调用两个父类的构造函数)
2、void showMessage()方法体调用父类的printPerson(),及printTeacher(),并输出research;
输入:
加粗样式
无
输出:
jack M 22
110 3888
人工智能
#include <iostream>
#include <string>
using namespace std;
class Person{
protected:
string name;
char sex;
int age;
public:
Person(){
}
Person(string name,char sex,int age):name(name),sex(sex),age(age){
}
void printPerson(){
cout<<name<<" "<<sex<<" "<<age<<endl;
}
};
class Teacher {
protected:
int staffId;
double salary ;
public:
Teacher(){
}
Teacher(int staffId,double salary):staffId(staffId),salary(salary){//初始化列表
}
void printTeacher(){
cout<<staffId<<" "<<salary<<endl;
}
};
class Professor:public Person,Teacher{//多继承
protected:
string research;
public:
Professor(string name,char sex,int age,int staffId,double salary,string r):Person(name,sex,age),Teacher(staffId,salary){//调用父类构造函数
research=r;
}
void showMessage(){
//派生类内部或对象需要访问基类的同名函数,必须在前面加上“基类名::”进行限定
printPerson();//调用父类函数
printTeacher();//同名时:Teacher::printTeacher();
cout<<research<<endl;//输出
}
};
int main() {
Professor professor("jack",'M',22,110,3888,"人工智能");
professor.showMessage();
return 0;
}