C++派生类构造函数实战

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/89742531

一 代码

#include<iostream>
#include<string>
using namespace std;
class CStudent{//声明基类Student
public:
   CStudent(int n,string nam,char s){//基类构造函数
      num=n;
      name=nam;
      sex=s;
   }
   ~CStudent(){} //基类析构函数
protected: //保护部分
   int num;
   string name;
   char sex ;
};
class CStudent1: public CStudent{//声明派生类Student1
public : //派生类的公用部分
   CStudent1 (int n,string nam,char s,int a,string ad): CStudent (n,nam,s){//派生类构造函数
      age=a; //在函数体中只对派生类新增的数据成员初始化
      addr=ad;
   }
   void show(){
      cout<<"num: "<<num<<endl;
      cout<<"name: "<<name<<endl;
      cout<<"sex: "<<sex<<endl;
      cout<<"age: "<<age<<endl;
      cout<<"address: "<<addr<<endl<<endl;
   }
   ~CStudent1(){ } //派生类析构函数
private : //派生类的私有部分
   int age;
   string addr;
};
int main(){
   CStudent1 stud1(10010,"Wang-li",'f',19,"115 Beijing Road,Shanghai");
   CStudent1 stud2(10011,"Zhang-fun",'m',21,"213 Shanghai Road,Beijing");
   stud1.show(); //输出第一个学生的数据
   stud2.show(); //输出第二个学生的数据
   return 0;
}

二 运行

[root@localhost charpter02]# g++ 0226.cpp -o 0226
[root@localhost charpter02]# ./0226
num: 10010
name: Wang-li
sex: f
age: 19
address: 115 Beijing Road,Shanghai

num: 10011
name: Zhang-fun
sex: m
age: 21
address: 213 Shanghai Road,Beijing

三 说明

实战中,类CStudent1继承了CStudent。类CStudent1比基类新增了两个数据成员。基类CStudent有自己带参构造函数,而派生类的构造函数,只须对派生类新增数据成员初始化,不过需要把基类的参数也给带进去。

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/89742531