【C++学习笔记10】实验10-继承性(1)

编写程序:
创建一个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;
}

猜你喜欢

转载自blog.csdn.net/qq_49868778/article/details/116717719