c++中继承的使用
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++中继承的使用的更多相关文章
- cocos2dx lua中继承与覆盖C++方法
cocos2dx的extern.lua中的class方法为lua扩展了面向对象的功能,这使我们在开发中可以方便的继承原生类 但是用function返回对象的方法来继承C++类是没有super字段的,这 ...
- JavaScript中继承的那些事
引言 JS是一门面向对象的语言,但是在JS中没有引入类的概念,之前特别疑惑在JS中继承的机制到底是怎样的,一直学了JS的继承这块后才恍然大悟,遂记之. 假如现在有一个“人类”的构造函数: functi ...
- java中继承thread类的其他类的start()方法与run()方法
java中继承thread或者实现runnable接口的类必须重写run()方法. 如果其执行了start()方法,其实就是启动了线程的run()方法. 注意:如果是实现runnable接口的类是没有 ...
- 设计模式之开放-封闭原则(引申出Objective-C中继承、Category、Protocol三者的区别,这点面试常问)
开放封闭原则(OCP原则The Open-Closed Principle)是面向对象的核心设计所在.它是说,软件开发实体(类.模块.函数等)应该可以扩展,但是不能修改. 这个原则有两个特征,一个是说 ...
- 2018.3.3 多线程中继承Thread 和实现Runnable接口 的比较(通过售票案例来分析)
多线程中继承Thread 和实现Runnable接口 的比较(通过售票案例来分析) 通过Thread来实现 Test.java package com.lanqiao.demo4; public cl ...
- 探讨 JS 的面向对象中继承的那些事
最近学了 JS 的面向对象,这篇文章主要是探讨 JS 的面向对象中继承的那些事. JS中继承的特点: 1.子类继承父类: 2.子类可以用父类的方法和属性 3.子类的改变可以不影响父类 下面用一个例子来 ...
- Java中继承,类的高级概念的知识点
1. 继承含义 在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类,这种方式称为继承(inheritance). 2. 继承的优点 A.代码的可重用性 B.子类可以扩 ...
- 谈谈c++中继承中的虚函数
c++继承中的虚函数 c++是一种面向对象的编程语言的一个很明显的体现就是对继承机制的支持,c++中继承分很多种,按不同的分类有不同分类方法,比如可以按照基类的个数分为多继承和单继承,可以按照访问 ...
- Javascript中继承
Javascript中继承 构造函数继承 原型继承 call和apply继承 组合继承
- java中继承,子类是否继承父类的构造函数
java中继承,子类是否继承父类的构造函数 java继承中子类是不会继承父类的构造函数的,只是必须调用(隐式或者显式) 下面来看例子: public class TestExtends { publi ...
随机推荐
- Jquery的显示与隐藏
$(selector).hide(speed,callback); $(selector).show(speed,callback); 可选的 speed 参数规定隐藏/显示的速度,可以取以下值:&q ...
- 设计模式-Iterator
本文参(chao)考(xi)<图解设计模式> 结城浩 (作者) 杨文轩 (译者) 1.Iterator 模式 迭代器作用于集合,是用来遍历集合元素的对象. 迭代器模式提供一种方法顺序访问一 ...
- JMS与消息队列
JMS,Java Message Service,即Java消息服务. MOM,Message Oriented Miiddleware的英文缩写,指的是利用高效可靠的消息传递机制进行平台无关的数据交 ...
- System.Runtime.Serialization.cs
ylbtech-System.Runtime.Serialization.cs 允许对象控制其自己的序列化和反序列化过程. 1.返回顶部 1. #region 程序集 mscorlib, Versio ...
- IDEA分配内存无效
idea改启动内存分配, 改 C:/Users/xxx/.IntelliJIdea2018.1/confing/idea64.exe.vmoptions 或 C:/Users/xxx/.Intelli ...
- java-mybaits-014-数据库缓存设计【querycache、mybatis一级缓存、二级缓存】
一.概述 一般来说,可以在5个方面进行缓存的设计: 1.最底层可以配置的是数据库自带的query cache, 2.mybatis的一级缓存,默认情况下都处于开启状态,只能使用自带的Perpetual ...
- CharUtil
package com.opslab.util; import java.io.UnsupportedEncodingException; /** * Various character and ch ...
- Qt编写气体安全管理系统3-用户模块
一.前言 从这篇开始逐个写具体的功能模块,用户模块主要有四个方面,用户登录.用户退出.用户管理.权限控制.这里都按照简单的常规做法来做,比如用户登录界面,就将用户名提供下拉框选择,然后输入密码,密码框 ...
- python设置socket的超时时间(可能使用locust压测千级并发的时候要用到,先记录在此)
在使用urllib或者urllib2时,有可能会等半天资源都下载不下来,可以通过设置socket的超时时间,来控制下载内容时的等待时间. 如下python代码 import socket timeou ...
- bootstrap-table+Django: 服务端分页
分页方式: bootstrap-table提供两种分页方式,client和server,即客户端和服务端分页: 特点: client端分页:后台返回所有数据,前台翻页时不再请求后台. server端分 ...