C++ 类,继承简单例子(笔记)

C++ 类,继承简单例子(笔记)

#include<iostream>
#include<string>

using namespace std;
 
class Person{
	private:
		string name;
		int age;
		char sex;
	public:
		Person():name("wl"),age(18),sex('b'){}
		Person(string c_name,int c_age,char c_sex):name(c_name),age(c_age),sex(c_sex){}
		Person(const Person &person){
			name = person.name;
			age = person.age;
			sex = person.sex;
		}
		void setName(string c_name){
			name = c_name;
		}
		string getName(){
			return name;
		}
		void setAge(int c_age){
			age = c_age;
		}
		int getAge(){
			return age;
		}
		void setSex(char c_sex){
			sex = c_sex;
		}
		char getSex(){
			return sex;
		}
		~Person();
		void print(){
			cout << name << " " << age << " " << sex << endl;
		}
    	//友元函数
		friend void show(Person b);
};
//class外声明
Person::~Person(){
	cout << "执行Person析构函数" << endl; 
}
void show(Person b){
	cout << b.name << " " << b.age << " " << b.sex << endl;
}

class Student:public Person{
	private:
		int studentId;
		string college;
	public:
		Student():studentId(1001),college("信院"){}
		Student(int c_studentId,string c_college)
			:studentId(c_studentId),college(c_college){}
		Student(string c_name,int c_age,char c_sex,int c_studentId,string c_college)
			:studentId(c_studentId),college(c_college){
			setName(c_name);
			setAge(c_age);
			setSex(c_sex);
		}
		void setStudentId(int c_studentId){
			studentId = c_studentId;
		}
		int getStudentId(){
			return studentId;
		}
		void setCollege(string c_college){
			college = c_college;
		}
		string getCollege(){
			return college;
		}
		void print(){
			cout << getName() << " " << getAge() << " " << getSex() << " " << studentId << " " << college << endl;
		}
};

class Teacher:public Person{
	private:
		int workId;
		string course;
	public:
		Teacher():workId(1001),course("C++"){}
		Teacher(int c_workId,string c_course)
			:workId(c_workId),course(c_course){}
		Teacher(string c_name,int c_age,char c_sex,int c_workId,string c_course)
			:workId(c_workId),course(c_course){
			setName(c_name);
			setAge(c_age);
			setSex(c_sex);
		}
		void setWorkId(int c_workId){
			workId = c_workId;
		}
		int getWorkId(){
			return workId;
		}
		void setCourse(string c_course){
			course = c_course;
		}
		string getCourse(){
			return course;
		}
		void print(){
			cout << getName() << " " << getAge() << " " << getSex() << " " << workId << " " << course << endl;
		}
};

class Assistant:public Student,public Teacher{
	public:
		Assistant(){}
		Assistant(string c_name,int c_age,char c_sex,int c_studentId,string c_college,string c_course){
			Student::setName(c_name);
			Student::setAge(c_age);
			Student::setSex(c_sex);
			setStudentId(c_studentId);
			setCollege(c_college);
			setCourse(c_course);
		}
		void print(){
			cout << Student::getName() << " " << Student::getAge() << " " << Student::getSex() << " " << getStudentId() << " " << getCollege() << " " << getCourse() << endl; 
 		}
};

int main(){
	//--------------------------------------------- 
	string name;
	int age;
	char sex;
	cin >> name >> age >> sex;
	//无参构造 
	Person p1;
	//传参构造 
	Person p2(name,age,sex);
	//拷贝构造 
	Person p3(p2);
	p1.print();
	p2.print();
	p3.setName("wlzs");
	p3.setAge(15);
	p3.setSex('g');
	cout << p3.getName() << " " << p3.getAge() << " " << p3.getSex() << endl;
	//--------------------------------------------- 
	Assistant as1;
	as1.print();
	Assistant as2("WzbL",21,'b',1005,"软工","高数"); 
	as2.print();
}
发布了14 篇原创文章 · 获赞 1 · 访问量 246

猜你喜欢

转载自blog.csdn.net/qq_41454682/article/details/104952742