C++下讲解关于公有继承、公有私有和保护继承的不同
程序员文章站
2022-06-17 19:38:04
c++下的公有继承、公有私有和保护继承的不同讲解
#include
using namespace std;
/*---------------------...
c++下的公有继承、公有私有和保护继承的不同讲解
#include <iostream> using namespace std; /*--------------------------------- 19.25-1.公有继承 变化 | 公有继承 | 保护继承 | 私有继承 基类的公有成员变成 | 派生类的公有成员 | 派生类的保护成员 | 派生类的私有成员 基类的保护成员变成 | 派生类的保护成员 | 派生类的保护成员 | 派生类的私有成员 基类的私有成员变成 | 只能通过基类的接口访问 ---------------------------------*/ class a { public: void set(int a,int b){x=a;y=b;} void show(){ cout<<x<<endl<<y<<endl;} protected: int x; private: int y; }; class b:public a { public: //void set(int a,int b){x=a;y=b;} //编译报错,基类的私有成员y被公有派生后,是不可以直接访问的 //void show(){ cout<<x<<endl<<y<<endl;} //编译报错,基类的私有成员y被公有派生后,是不可以直接访问的 /*修改如下*/ void setb(int a){ x=a;} void showb(){ cout<<x<<endl;} }; int main() { b b; b.set(1,2);//基类的公有成员函数set被公有派生后,可以直接访问 b.show(); //基类的公有成员函数set被公有派生后,可以直接访问 cout<<"-----------------"<<endl; b.setb(3); //基类的公有成员变量x被公有派生后,可以直接访问 b.showb(); return 0; }
运行结果:
1 2 ----------------- 3 press any key to continue
上一篇: SQLite教程(十一):临时文件