基本语法
好处:减少重复代码
class A:public B
A:子类:派生类
B:父类:基类
继承可用下列图表显示
#include<iostream>
using namespace std;
class basspage
{
public:
void header()
{
cout<<"首页,公开课。";
}
void footer()
{
cout<<"帮助中心,交流合作。";
}
void left()
{
cout<<"JAVA,PYTHON。";
}
};
class java:public basspage
{
public:
void content()
{
cout<<"java视频"<<endl;
}
};
class python:public basspage
{
public:
void content()
{
cout<<"python视频"<<endl;
}
};
void test()
{
cout<<"java"<<endl;
java jv;
jv.header();
jv.footer();
jv.left();
cout<<endl;
cout<<"python"<<endl;
python pt;
pt.header();
pt.footer();
pt.left();
}
int main()
{
test();
}
继承方式
公共继承
保护继承
私有继承
继承方式区别
继承中构造与析构顺序
先构造父类,再构造子类。
先析构子类,再析构父类。
继承中同名成员处理方式
访问子类需要直接访问
访问父类需要加作用域
多继承语法
一个类允许继承多个类
class son: 继承方式 :父类一,继承方式:父类二
产生二义性通过作用域进行区分
菱形继承
两个派生类继承同一个基类
某个类同时继承两个派生类
通过作用域进行区分相同数据也可以利用虚继承加上virtual变为虚继承解决这个问题
#include<iostream>
using namespace std;
class animal
{
public :
int age;
};
class sheep :virtual public animal {};
class tuo :virtual public animal {};
class sheeptuo : public sheep,public tuo {};
int main()
{
sheeptuo st;
st.sheep::age=200;
st.tuo::age=100;
cout<<"st.sheep::age="<<st.sheep::age<<endl;
cout<<"st.tuo::age="<<st.tuo::age<<endl;
cout<<"st.age="<<st.age<<endl;
}