【C++学習記10】実験10 - 継承(1)

プログラムを作成します:
Teacher を作成し、パブリックな方法で Person クラスの保護された型の
データ メンバーint StaffId を継承します; //従業員 ID の給与を 2 倍にします;//Salaryパブリック メンバー メソッド: 1. パラメーターを持つコンストラクター (初期化リスト呼び出し) 2. void printTeacher() メソッド本体はクラスの printperson() を呼び出し、staffId と給与を出力します。 入力:なし出力: 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 つの構造を呼び出します)
2. void showMessage() メソッドの本体は親クラスの printperson() と printTeacher() を呼び出し、リサーチを出力します; 入力 :
太字
スタイル
、出力なし
:
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