版权声明:本文为博主原创文章,未经博主允许不得转载。 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有自己带参构造函数,而派生类的构造函数,只须对派生类新增数据成员初始化,不过需要把基类的参数也给带进去。