终于到了面向对象的三大特征之一的继承了,这里只是简单的写了个继承的demo,并没有实现什么太大的功能,也没有太多的语法,这里需要注意一点的就是,我的类的成员都是私有成员,之前我的一篇文章写了成员列表初始化的一些规则,然后这里需要添加一个规则就是,如果想通过派生类调用基类的构造函数,那么必须通过成员列表初始化,如果成员列表初始化没有显示的调用构造函数,那么就会调用基类的无参构造函数,然后就没有太多需要注意的,因为是学习笔记,所以就想尽可能的写的完善。
代码:
//这段代码主要是演示了类的继承,c++不同于java,可以实现多继承,在派生类里面我们需要通过参数列表化来进行基类构造函数的调用,
//然后考虑到封装,我们应该使用get和set来得到和设置变量,而不是直接修改变量
#include<iostream>
using namespace std;
class Person{
private:
string name;
int age;
public:
//基类的构造函数
Person(string str,int age){
name=str;
this->age=age;
}
//显示函数
void show(){
cout<<name<<":"<<age<<endl;
}
//返回基类的名字
string getName(){
return name;
}
//返回基类的年龄
int getAge(){
return age;
}
};
class Student:public Person{
private:
int number;
public :
//派生类的构造函数,需要调用基类的构造函数,如果没有显示调用,那么系统会调用基类的无参构造函数,如果基类没有无参构造函数,那么程序会出错
Student(string str,int age,int number):Person(str,age){
this->number=number;
}
//显示数据
void show(){
cout<<getName()<<":"<<getAge()<<":"<<number<<endl;
}
};
int main(){
Person p("jike",5);
Student stu("jike",23,999);
stu.show();
p.show();
system("pause");
return 0;
}