类的公有继承

来源:互联网 发布:网络机顶盒升级包下载 编辑:程序博客网 时间:2024/04/25 23:07
#include<iostream>using namespace std;class B{public:void getab(int a1,int b1){          a=a1;  b=b1;}void dispab(){cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;}private:int a;protected:int b;};class C:public B{ //公有继承public:void getabc(int a1,int b1, int c1){//a=a1;  //是错的,a为B类私有成员,C的成员函数不能直接调用。        b=b1;    //对的,b为B类的保护乘员,C类的成员函数可直接调用,getab(a1,b1);c=c1;}void dispabc(){//cout<<"a="<<a<<endl;  //是错的,a为B类私有成员,C的成员函数不能直接调用cout<<"b="<<b<<endl;  //对的,b为B类的保护乘员,C类的成员函数可直接调用cout<<"------------------------"<<endl;dispab();cout<<"c="<<c<<endl;}private:int c;};int main(){C obj;obj.getabc(11,22,33);cout<<"调用的是父类的dispab()"<<endl;obj.dispab();         //子类(派生类)对象可直接调用公有继承来的父类(基类)的成员函数cout<<"===================="<<endl;cout<<"调用的是派生类的dispabc()"<<endl;obj.dispabc();return 0;}//基类的共有成员和保护成员被公有继承后,保持成员在基类中的原有类型,派生类可直接访问。基类的私有成员在派生类中不可直接访问,只能通过基类共有成员函数间接访问