C++三种继承方式--公有继承、保护继承、私有继承
来源:互联网 发布:淘宝美工招聘网 编辑:程序博客网 时间:2024/06/05 05:41
//公有继承:基类的公有和保护成员在派生类中仍然是公有和保护成员,可以由派生类的成员函数来访问,//派生类对象可以访问公有的成员,至于基类的私有成员,无论是派生类的成员函数,还是派生类的对象,都无法访问//私有继承:基类所有的非私有成员在派生类中一律变成派生类的私有成员,派生类只能通过它的成员函数来访问,//派生类对象不能访问,至于基类的私有成员,只能由基类的成员函数来访问。//保护继承:基类的非私有成员,在派生类中都变成保护成员,这些成员可以被派生类的成员函数访问,但不能被派生类对象访问。//基类的私有成员仍然在派生类中不可见。#include<iostream>using namespace std;class A{public:void setX(int i);int getX() const;int z;protected:int y;private:int x;};void A::setX(int i){x=i;}int A::getX() const{return x;}class B:public A{public:void SetValue(int,int,int,int,int);void display(void) const;protected:int m;private:int n;};void B::SetValue(int a,int b,int c,int d,int e){//x=a; //基类的私有数据x对派生类不可见,故直接访问非法setX(a); //通过公有的成员函数setX()来间接访问基类的私有数据xy=b; //公有继承,将b的值赋给基类的保护成员y,访问合法z=c; //公有继承,将c的值赋给基类的公有成员z,访问合法m=d;n=e;}void B::display() const{//cout<<"x="<<x<<endl; //x在派生类中不可访问cout<<"x="<<getX()<<endl;cout<<"y="<<y<<endl;cout<<"z="<<z<<endl;cout<<"m="<<m<<endl;cout<<"n="<<n<<endl;}int main(){B b;b.SetValue(1,2,3,4,5);b.display();cout<<"z="<<b.z<<endl;//公有权限,可以通过对象访问//cout<<"x="<<b.x<<endl;//基类的私有对象,类外均不可访问//cout<<"y="<<b.y<<endl;//基类的保护数据,不可通过对象访问//cout<<"m="<<b.m<<endl;//派生类的保护数据,不可通过对象访问 //cout<<"n="<<b.n<<endl;//派生类的私有数据,不可通过对象访问system("pause");return 0;}
0 0
- c++:私有继承,公有继承,保护继承
- 公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。
- C++三种继承方式--公有继承、保护继承、私有继承
- 公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。
- C++继承的三种方式,私有、公有、保护。
- 公有继承,私有继承,和保护继承
- 公有继承,私有继承,和保护继承
- 公有继承,私有继承,和保护继承
- 公有继承 保护继承 私有继承
- 公有继承 私有继承 保护继承
- 公有继承、保护继承和私有继承
- 公有继承、保护继承和私有继承
- 公有继承 保护继承 私有继承
- c++ 公有继承/私有继承/保护继承
- 公有继承 保护继承 私有继承
- C++ 公有继承,私有继承,保护继承
- C++:公有继承、私有继承和保护继承
- 2017061801公有继承保护继承私有继承公有继承保护继承私有继承
- leetCode 3Sum 解题分享
- cocos2d-x学习<一> 打包apk(win7+vs2012+eclipse+cygwin)
- 堆(优先级队列) 的应用
- 【COGS】256 [POI2001] 金矿 线段树
- 1130 - Host ‘' is not allowed to connect to this mysql server
- C++三种继承方式--公有继承、保护继承、私有继承
- java使用poi导出Excel(Excel为双标题)
- 黑马程序员—学习java基础3日记
- cocos2d-x基本知识点(2)
- 1.js标签解析
- mysql ERROR 1045 (28000): Access denied for user解决方法
- Netty3 源码分析 - AbstractChannel
- 【从源码看Android】04 Android dalvik虚拟机Thread的底层实现
- Java 注意事项