class student class stud private int num char

  • Slides: 20
Download presentation

我们来看下面这个关于继承的例子: 比如在一个学生管理软件中,某部 门只需了解一个学生的如下信息: 而另一部门除了需要了解左面的那 些信息以外还需要了解以下信息: class student class stud { private: int num; char

我们来看下面这个关于继承的例子: 比如在一个学生管理软件中,某部 门只需了解一个学生的如下信息: 而另一部门除了需要了解左面的那 些信息以外还需要了解以下信息: class student class stud { private: int num; char nam[10]; char sex; int age; public: char addr[20]; void display ( ) public: { cout<<“num: ”<<num<<endl; void display( ) cout<<“name: ”<<nam<<endl; { cout<<“num: ”<<num<<endl; cout<<“name: ”<<nam<<endl; cout<<“sex: ”<<sex<<endl; } cout<<“age: ”<<age<<endl; }; cout<<“addr: ”<<addr<<endl; } } Lan. Jiming@sohu. com copyright Tuesday, February 23, 2021 四川理 学院计算机学院 《C++程序设计》 第 3页

例3. 1 通过继承来建立派生类student(父类stud 已在前面 定义了) class student : public stud { private: // 新增数据成员

例3. 1 通过继承来建立派生类student(父类stud 已在前面 定义了) class student : public stud { private: // 新增数据成员 int age ; char addr[30]; public: // 新增成员函数 void show( ) { cout<<“age: ”<<age<<endl; cout<<“address: ”<<address<<endl; } }; 在第一行中:student 是新建的类名。stud 是一个前面已定 义的类。public 表示父类stud 中的成员在派生类student中 的访问控制方式。 Lan. Jiming@sohu. com copyright Tuesday, February 23, 2021 四川理 学院计算机学院 《C++程序设计》 第 5页

例3. 2:访问基类成员 class stud // 定义基类 { private: // 基类私有成员 int num; char name[10];

例3. 2:访问基类成员 class stud // 定义基类 { private: // 基类私有成员 int num; char name[10]; char sex; protected: // 基类保护成员 char major[15]; public: // 基类公有成员 void init( int n, char nam[], char s, char maj[] ) { num=n; strcpy( name, nam); sex=s; strcpy(major, maj); } void display( ) { cout<<“num: ”<<num<<endl; cout<<“name: ”<<name<<endl; cout<<“sex: ”<<sex<<endl; cout<<“major: ”<<major<<endl; // 访问本类保护成员 } }; Lan. Jiming@sohu. com copyright Tuesday, February 23, 2021 四川理 学院计算机学院 《C++程序设计》 第 7页

#include<string. h> #include<iostream. h> class stud { protected: int num; char name[15]; char sex;

#include<string. h> #include<iostream. h> class stud { protected: int num; char name[15]; char sex; public: stud(int n, char nam[ ], char s) { num=n; strcpy(name, nam); sex=s; } ~stud( ){ } }; class student: public stud { private: int age; char address[30]; public: Lan. Jiming@sohu. com copyright student( int n, char nam[ ], char s, int a, char addr[ ] ) : stud(n, nam, s) { age=a; strcpy (address, addr) ; } void show( ) { cout<<“num: ”<<num<<endl; cout<<“name: ”<<name<<endl; cout<<“sex: ”<<sex<<endl; cout<<“age: ”<<age<<endl; cout<<“address: ”<<address<<endl; } ~student ( ) { } }; void main ( ) { student a(10010, ”Wang-li”, ’f’, 19, “ 115 Deng. Guan Road, Zi Gong"); student b(10011, ” Zhang_fun”, ’m’, 21, "3 Hui. Dong development area, Zi. Gong"); a. show ( ); b. show ( ); }; Tuesday, February 23, 2021 四川理 学院计算机学院 《C++程序设计》 第 14页

3. 5 组合(Composition) Lan. Jiming@sohu. com copyright Tuesday, February 23, 2021 四川理 学院计算机学院 《C++程序设计》

3. 5 组合(Composition) Lan. Jiming@sohu. com copyright Tuesday, February 23, 2021 四川理 学院计算机学院 《C++程序设计》 第 17页

3. 6 多重继承(Multiple inheritance) Lan. Jiming@sohu. com copyright Tuesday, February 23, 2021 四川理 学院计算机学院

3. 6 多重继承(Multiple inheritance) Lan. Jiming@sohu. com copyright Tuesday, February 23, 2021 四川理 学院计算机学院 《C++程序设计》 第 18页