【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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值