1.继承和派生
父类/基类 子类/派生类
2.class 子类名:继承方式 父类名
{
};3.继承方式导致的权限问题
继承方式:public protected private 权限限定词
低----------------->高
3.1 继承方式只会加强父类属性在子类中权限的呈现权限
父类属性在子类的权限最低是继承方式
3.2 父类的私有属性可以被继承但是不能访问
4.继承中构造函数的写法
除了构造函数和析构函数之外父类有的子类都有拷贝份
#include<iostream>
using namespace std;//父类
class MM
{
public:voidprint(){
cout <<"MM"<< endl;}
protected:int age;int num;};//子类
class coolBoy :public MM
{
public:voidprintBoy(){
//继承的实质:具有父类的一些属性
cout << age << num << endl;print();}
protected:};//公有继承//继承方式只会加强父类属性在子类中属性的呈现权限
class A
{
public:int x;
protected:int y;
private:int z;};
class a :public A
{
public://int x;
protected:voidprint(){
cout << y << endl;//保护属性继承下来可以被访问//错误//cout << z << endl; //私有属性继承下来不能被访问}//int y;
private://int z;};//保护继承
class b :protected A
{
public:
protected://int x; //public 里面的到 protected//int y;
private://int z;};//私有继承
class c :private A
{
public:
protected:
private://int x;//int y;//父类私有属性不能被访问//int z;};//继承具有遗传性
class XX
{
public:int X;
protected:};
class YY :public XX
{
public:int y;//int x;};
class ZZ :public YY
{
public://int x;//int y;};intmain(){
a aObject;
aObject.x =100;
b bObject;//错误 保护继承//bObject.x = 11;return0;}
二、继承中构造函数的写法
哪一个类的属性就需要哪一个类的构造函数初始化
1.子类的构造函数,除了需要初始化本类数据
还需要调用父类的构造函数初始化被继承下来的属性
2.子类的构造函数必须采用初始化参数列表
*/#include <iostream>#include<string>
using namespace std;
class MM
{
public:MM(){
cout <<"MM"<< endl;}//构造函数不需要自己调用MM(string name,int age):name(name),age(age){
cout <<"MM"<< endl;}
protected:
string name;int age;};
class son :public MM
{
public://调用无参son(int money):money(money){
cout <<"son"<< endl;}//子类的构造函数写法