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. SpringMVC从Session域中获取值

    SpringMVC从Session域中获取值 SpringMVC环境自行搭建 第一步:前端页面 第二步.后台代码 第三步.响应视图 第四步.在当前处理器所在的类设置@SessionAttributes ...

  2. bootstrap table插件动态加载表头

    这篇文章主要为大家详细介绍了bootstrap table插件动态加载表头,具有一定的参考价值,感兴趣的小伙伴们可以参考一下   bootstrap的table属性已经很熟悉了,最近遇到一个问题,犹豫 ...

  3. spring boot 之注册

    注册数据库 使用spring boot 之登录笔记  的数据库 在server 层 User create(String username, String password, String email ...

  4. 2018-2019-2 《网络对抗技术》Exp8 Web基础 20165326

    Web基础 实验要求 本实践的要求: Web前端HTML,能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. Web前端javascipt.理 ...

  5. 树莓派python 控制GPIO

    sudo pip install rpi.gpio #!/usr/bin/env python # encoding: utf-8 import RPi.GPIO as GPIO import tim ...

  6. Wamp 本地访问特别慢,原因在这

      Wamp 本地访问特别慢.打开空的页面都要400ms,彻底疯了     什么localhost改为127.0.0.1 什么 清理日志缓存,都不好使, 重点在Xdebug,安装了Xdebug之后变慢 ...

  7. F12找到页面某一元素所绑定的点击事件

    比如我要查看银行账号这个标签所绑定的事件. 操作过程中使用的是谷歌浏览器 第一步:在该元素上右键→检查 第二步:点击Event Listeners 这样就能看到该元素绑定的所有事件了 第三步:展开cl ...

  8. Java基础 println 输出常量的示例

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  9. 使用jquery循环并获取 json 数组的键/值对

    var resultJSON = '{"FirstName":"John","LastName":"Doe"," ...

  10. Linux防火墙白名单设置

    在linux系统中安装yum install iptables-services 然后 vi /etc/sysconfig/iptables # Generated by iptables-save ...