这篇文章主要介绍“C++的继承和派生是什么”,在日常操作中,相信很多人在C++的继承和派生是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++的继承和派生是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
继承的写法
//父类 基类class parent{};//子类 派生类//公有继承class soon1:public parent{ public: protected:};//保护继承class son2:protected parent{ public: protected:};//私有继承class son3:private parent{ public: protected:};//继承和派生//继承:子类中没有产生新的属性和行为//派生:派生类中有新的属性和行为产生class 子类名:继承方式 父类名{};//继承方式 就是权限限定词
继承实质与权限问题
继承的实质:父类的数据和成员子类中有一份
权限问题:继承方式只会增强父类属性在子类中的权限显示
public | protected | private | |
---|---|---|---|
public继承 | public | protected | 不可直接访问 |
protected继承 | protected | protected | 不可直接访问 |
private继承 | private | protected | 不可直接访问 |
#include<iostream>#include<string>using namespace std;class parent{public:void print(){cout << name << "\t" << money << endl;}string& getWide(){return wide;}protected:string name;int money;private:string wife;};//子类class son :public parent{public:void printSon(){print();cout << name<<"\t"<<money<< endl;//cout << wife << endl;父类中的私有属性不能直接访问cout << getWide() <<endl;//间接通过父类的函数访问}protected:};class A{public:int a1;protected:int a2;private:int a3;};class B :public A{public://int a1; protected://int a2;private://int a3;不能直接访问};class C :protected A{public:protected://int a1; public 显示protected//int a2;private://int a3;不能直接访问};class D :private A{public:void print(){cout << a1 << endl;;cout << a2<< endl;}protected:private: //int a1; public 显示protected//int a2;//int a3;//父类的私有属性不能直接访问};//私有继承会导致当前父类 无法在孙子类有任何作用class F :public D{public:};int main(){son boy;boy.printSon();B b;b.a1 = 123;C c;//c.a1 = 12;return 0;}
到此,关于“C++的继承和派生是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!