1.c++中继承有公有继承,保护继承,私有继承

定义个基类:
#include
using namespace std;
class Base
{
public:
void display()
{
cout<<"111212"<<endl;
}
protected:
int x;
private:
int y;
}; 
定义一个派生类:
公有继承:派生类的对象可以访问基类中的公有成员,派生类的成员函数可以访问基类的公有和保护成员,
基类的公有成员和保护成员作为派生类的成员时,保持其原有状态
class A:public Base
{
public:
void print()
{
cout<<"liglog"<<endl;
display();  //派生类内部可以访问基类的公有成员
x=0;   //派生类内部中可以访问基类的保护成员
cout<<
//y=1;   //派生类内部都不可访问基类的私有成员
//cout<<
}
protected:
int Ax;
private:
int Ay;
};

  保护继承:派生类的成员函数可以访问基类的公有成员和保护成员,以及基类的公有成员和保护成员作为派生类的保护成员,保护成员还可被派生类的子类访问

class B:protected Base
{
public:
void print()
{
cout<<"shi"<<endl;
display();//派生类内部可访问基类的公有成员
x=1;//派生类内部可访问基类的保护成员
cout<<x<<endl;
// y=1;//派生类内部不可访问基类的私有成员
// cout<<y<<endl;
}
protected:
int Bx;
private:
int By;
};

 私有继承:基类的公有成员和保护成员作为派生类的私有成员,不能被派生类的子类访问,即不能被往下继承。

class C:private Base
{
public:
void print()
{
cout<<"wo"<<endl;
display();//派生类内部可访问基类的公有成员
x=1; //派生类内部可访问基类的保护成员
cout<<x<<endl;
// y=1; //派生类内部不可访问基类的私有成员
// cout<<y<<endl;
}
protected:
int Cx;
private:
int Cy; };

  main函数:

int main()
{
// 公有继承部分
A aObject;
aObject.display();//派生类外部可以访问基类的公有成员
aObject.print();
// aObject.x=1;//派生类外部不可访问基类的保护成员
// aObject.y=3;//派生类外部不可访问基类的私有成员
//保护继承部分
B bObject;
// bObject.display();//派生类外部不可访问基类的公有成员
bObject.print();
// bObject.x=1;//派生类外部不可访问基类的保护成员
// bObject.y=1;//派生类外部不可访问基类的私有成员
//私有继承部分
C cObject;
// cObject.display();//派生类外部不可访问基类的公有成员
cObject.print();
// cObject.x=1;//派生类外部不可访问基类的保护成员
// cObject.y=1;//派生类外部不可访问基类的私有成员
return 0;
}

  

c++中继承的使用的更多相关文章

  1. cocos2dx lua中继承与覆盖C++方法

    cocos2dx的extern.lua中的class方法为lua扩展了面向对象的功能,这使我们在开发中可以方便的继承原生类 但是用function返回对象的方法来继承C++类是没有super字段的,这 ...

  2. JavaScript中继承的那些事

    引言 JS是一门面向对象的语言,但是在JS中没有引入类的概念,之前特别疑惑在JS中继承的机制到底是怎样的,一直学了JS的继承这块后才恍然大悟,遂记之. 假如现在有一个“人类”的构造函数: functi ...

  3. java中继承thread类的其他类的start()方法与run()方法

    java中继承thread或者实现runnable接口的类必须重写run()方法. 如果其执行了start()方法,其实就是启动了线程的run()方法. 注意:如果是实现runnable接口的类是没有 ...

  4. 设计模式之开放-封闭原则(引申出Objective-C中继承、Category、Protocol三者的区别,这点面试常问)

    开放封闭原则(OCP原则The Open-Closed Principle)是面向对象的核心设计所在.它是说,软件开发实体(类.模块.函数等)应该可以扩展,但是不能修改. 这个原则有两个特征,一个是说 ...

  5. 2018.3.3 多线程中继承Thread 和实现Runnable接口 的比较(通过售票案例来分析)

    多线程中继承Thread 和实现Runnable接口 的比较(通过售票案例来分析) 通过Thread来实现 Test.java package com.lanqiao.demo4; public cl ...

  6. 探讨 JS 的面向对象中继承的那些事

    最近学了 JS 的面向对象,这篇文章主要是探讨 JS 的面向对象中继承的那些事. JS中继承的特点: 1.子类继承父类: 2.子类可以用父类的方法和属性 3.子类的改变可以不影响父类 下面用一个例子来 ...

  7. Java中继承,类的高级概念的知识点

    1. 继承含义 在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类,这种方式称为继承(inheritance). 2. 继承的优点 A.代码的可重用性 B.子类可以扩 ...

  8. 谈谈c++中继承中的虚函数

      c++继承中的虚函数 c++是一种面向对象的编程语言的一个很明显的体现就是对继承机制的支持,c++中继承分很多种,按不同的分类有不同分类方法,比如可以按照基类的个数分为多继承和单继承,可以按照访问 ...

  9. Javascript中继承

    Javascript中继承 构造函数继承 原型继承 call和apply继承 组合继承

  10. java中继承,子类是否继承父类的构造函数

    java中继承,子类是否继承父类的构造函数 java继承中子类是不会继承父类的构造函数的,只是必须调用(隐式或者显式) 下面来看例子: public class TestExtends { publi ...

随机推荐

  1. 超级详细的git使用指北

    原文地址:https://www.cnblogs.com/wupeixuan/p/11947343.html 1.0  安装和配置 1.1  Git 安装 1.2  Git 配置 2.0  Git 基 ...

  2. shell脚本编程——生产实战案例

    生产实战案例     在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要 ...

  3. win10 eclipse连接虚拟机ubuntu中的hdfs

    1.eclipse安装连接hadoop的插件hadoop-eclipse-plugin-2.6.0(注意自己hadoop的版本) 将该插件放在eclipse安装路径的plugins文件夹中. ps:我 ...

  4. C平衡二叉树(AVL)创建和删除

    AVL是最先发明的自平衡二叉查找树算法.在AVL中任何节点的两个儿子子树的高度最大差别为一,所以它也被称为高度平衡树,n个结点的AVL树最大深度约1.44log2n.查找.插入和删除在平均和最坏情况下 ...

  5. matplotlib显示黑白灰度图像颜色设置

    对于黑白灰度图像(矩阵) 1. 默认使用伪彩色拉升 2 cmap参数为 binary,可能导致颜色反转 3. cmap = gray,same color as origin, that is, wh ...

  6. Javascript事件派发-dispatchEvent

    事件派发的作用: 1.派发数据,将一个封闭模块中的数据传递给另一个封闭模块.2.事件完成了较为复杂的解耦. 事件和回调函数不同在于: 1.事件可以在任意地方去获取,而回调函数只能在一个地方存在,如果需 ...

  7. Flutter -------- BottomNavigationBar 界面切换

    Android 中有BottomNavigationBar+Fragment切换 而在Flutter也有的BottomNavigationBar 效果图 底部有两种情况 底部导航栏的类型更改其项目的显 ...

  8. Android中jsoup的混淆规则【转】

    Android中jsoup的混淆规则版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com 说实话这篇文章的标题和内容我觉得很水,所以读者们要是也觉得这篇文章 ...

  9. flutter drawer 自定义图标 icon 手动打开drawer

    方法1:GlobalKey import "package:flutter/material.dart"; class Test extends StatefulWidget { ...

  10. getField和getDeclaredField的区别

    这两个方法都是用于获取字段getField 只能获取public的,包括从父类继承来的字段.getDeclaredField 可以获取本类所有的字段,包括private的,但是不能获取继承来的字段. ...