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();
}