C++day06 继承的关系
大家好,我是阿林。今天我分享的关于c++中继承的关系。
在学c++的继承的时候你是否会因为继承的关系而困扰呢。希望这篇博客对你有所帮助。
首先我们理清继承的关系,就是看继承父类的元素是否能在子类中访问、在类外例如main()中直接访问。
我总结了三个步骤:
判断某一句话,能否被访问
(1) 看调用语句,这句话写在子类的内部、外部
(2) 看子类如何从父类继承(public、private、protected)
(3) 看父类中的访问级别(public、private、protected)
我举个例子,并做一个形象的说明。
class Parent
{
public:
int a; //相当于老爹的名字 这个元素在子类是可以访问的。当能否能在外部访问就要看子类的继 承方式了,如果子类将老爹的名字保护起来protected 那就只能是他的家族使用,如果是 私有继承private,那就只能它自己使用,如果是公开继承public那么就是大家都可以使用
protected:
int b;//老爹的密码 老爹的密码是可以被儿子使用的但不可以在外界使用。
private:
int c;//老爹的情人 儿子是不可以使用老爹的情人,所以儿子是没有访问的权利的。
public:
void printT()
{
cout << "printT" << endl;
}
};
我举的这个例子是比较通俗易懂,现在我们来看看官方的话。
//public 修饰成员变量 方法 在父类的内部 子类的内外外部都能使用
//protectd: 修饰的成员变量方法,在父类的内部,在继承
//private: 修饰的成员变量的方法 只能在父类的内部使用 不能在父类的外部使用
//protected 关键字 修饰的成员变量和成员函数是为了在家族中使用的。,是为了继承
最后我们用代码去测试一下效果。看那些可以访问,那些不可以访问
#include <iostream>using namespace std;//这是统一用public的方式去继承。
//public 修饰成员变量 方法 在父类的内部 子类的内外外部都能使用
//protectd: 修饰的成员变量方法,在父类的内部,在继承
//private: 修饰的成员变量的方法 只能在父类的内部使用 不能在父类的外部使用//protected 关键字 修饰的成员变量和成员函数是为了在家族中使用的。,是为了继承
class Parent
{
public:int a; //老爹的名字 protected:int b;//老爹的密码
private:int c;//老爹的情人public:void printT(){cout << "printT" << endl;}
};//公有继承
class Child :public Parent
{
public:void usrVar(){a = 0;//okb = 0;//ok//c = 0;//err}
protected:
private:};//私有继承
class Child2 :private Parent
{
public:void usrVar(){a = 0;//okb = 0;//ok//c = 0;//err}
protected:
private:};//保护继承
class Child3 :protected Parent
{
public:void usrVar(){a = 0;//okb = 0;//ok //b在这里 写在了子类Child3的内部 2看为protect 3 密码===》protected//c = 0;//err}
protected:
private:};
/*
C++的继承方式(public、private、protected)会影响子类的对外访问属性判断某一句话,能否被访问(1) 看调用语句,这句话写在子类的内部、外部(2) 看子类如何从父类继承(public、private、protected)(3) 看父类中的访问级别(public、private、protected)*/int main0201()
{Parent t1, t2;t1.a = 10; //ok//t1.b = 20;//err//t2.c = 30;//errsystem("pause");return 0;
}int main0202()
{Child3 c3;c3.a = 10;//errc3.b = 20;//errc3.c = 30;//errsystem("pause");return 0;
}
C++day06 继承的关系相关推荐
- 一步一步学Linq to sql(八):继承与关系
论坛表结构 为了演示继承与关系,我们创建一个论坛数据库,在数据库中创建三个表: 1. 论坛版块分类表 dbo.Categories: 字段名 字段类型 可空 备注 CategoryID int no ...
- Hibernate→HQL、query.list()返回数据类型、查询相关语句、分页、原生SQL、@注解、持久化对象状态及生命周期、一多关系、继承映射关系、逆向工程
HQL Query实例与表 session通用工具类 Query对象 from 类→List<类>接收 映射类 仅查询商品 查询商品及所在商家 别名 返回数据类型定义 Iterator接收 ...
- 继承连接关系的四叉树地图
继承连接关系的四叉树地图 继承连接关系的四叉树地图 树节点 边的继承 结果 继承连接关系的四叉树地图 四叉树.八叉树是一种高效的管理二维.三维空间的数据结构,本博客将从一组二维点云出发,简述继承连接关 ...
- hibernate的3种继承映射关系总结——TPH,TPS,TPC
Java类中有继承关系,相应的在hibernate中,也有继承关系,子类反应到数据库中,就有多种实现形式了,子类和父类可以映射到同一张表中,子类也可以单独映射成一张表,但是用不同的标签实现,子类表和父 ...
- JAVA day06 继承,super,方法的重写,抽象类
1.继承(extends) 继承涉及到两个类,子类(扩展类/衍生类)跟父类(基类/超类) 当多个类中存在相同属性和行为时,将这些内容单独提取到一个类,那么多个类里就不用再定义这些属性和行为了,只要继承 ...
- 继承映射关系 TPH、TPT、TPCEntityFramework6.0
每个类型一张表[TPT] 声明方式 public class Business{[Key]public int BusinessId { get; protected set; }public str ...
- 泛型与继承的关系,通配符
1 若类A是类B的子类,那么List<A>就不是List<B>的子接口 2 通配符:List[A],List[B]...都是List<?>的子类 extends A ...
- 【Java 继承】了解Java类的继承的特点,继承的关系,继承的使用,到底什么是继承?
博主:_LJaXi Or 東方幻想郷 专栏: Java | 从入门到入坟 Java 继承 继承的特点 \ 介绍 ❓ 特点 ♊ 继承的使用方式
- Hibernate中的Entity类之间的继承关系之一MappedSuperclass
在hibernate中,Entity类可以继承Entity类或非Entity类.但是,关系数据库表之间不存在继承的关系.那么在Entity类之间的继承关系,在数据库表中如何表示呢? Hibernate ...
最新文章
- 后处理安装_分享UG后处理出Excel程序单的方法
- linux 文件截取
- Python实现生成一个单词的圆形词云
- [Python图像处理] 二十.图像量化处理和采样处理及局部马赛克特效
- Not using the local TSLint version found for XXX
- opencv函数findcontours_OpenCV系列之轮廓入门 | 二十一
- 【C语言进阶深度学习记录】十四 C语言中 三目运算符和逗号表达式
- 山东2021高考成绩查询时间二本,山东二本录取结果什么时候出来,2021年高考山东二本录取结果查询时间...
- 计算机科学与技术专题,专题四 计算机科学与应用技术.ppt
- xargs命令_Linux xargs命令:一个给其他命令传递参数的过滤器
- python js 性能_Python Json使用,Json库性能测试
- 一条长为L的绳子,一面靠墙,另外三边组成矩形,问此矩形最大面积能是多少?...
- kali linux 2019.1 替换burpsuite pro 1.7.37
- 第一个python程序-判断登陆用户名和密码是否正确
- Google退出中国
- 一个完整的计算机系统五个基本部分组成,一个完整的计算机系统
- 卡口和电子警察的区别
- 台式计算机硬盘的尺寸通常为多少英寸,电脑硬件参数之硬盘
- python内置函数返回元素个数_Python内置函数
- 友价内核房产交易系统整站源码