一、定义

类的继承:是从新的类从已有类那里得到已有的特性。

二、方式

1.公有继承:当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。

例:

#include<iostream>
using namespace std; class Point//基类
{
public:
void initP(float xx,float yy)
{
x=xx;
y=yy;
}
void move(float xOff,float yOff)
{
x+=xOff;
y+=yOff;
}
float getX() {return x;}
float getY() {return y;}
private:
float x,y;
}; class Rectangle:public Point //公有继承
{
public:
void initR(float x,float y,float w,float h)
{
initP(x,y);//调用基类公有成员函数
this->w=w;
this->h=h;
}
float getH() {return h;}
float getW() {return w;}
private:
float w,h;
}; int main()
{
Rectangle rec;
rec.initR(2,3,20,10);
rec.move(3,2);
cout<<"rec(x,y,h,w):"<<endl;
cout<<rec.getX()<<","
<<rec.getY()<<","
<<rec.getH()<<","
<<rec.getW()<<endl;
} //运行结果为:
//rec(x,y,h,w):
//5,5,10,20

2.私有继承:当类的继承方式为私有继承时,基类的公有成员和保护成员都以私有成员身份出现在派生类中,而基类的私有成员在派生类中不可直接访问。

一般情况下私有继承使用比较少。

例:

#include<iostream>
using namespace std; class Point{
public:
void initP(float xx,float yy)
{
x=xx;
y=yy;
}
void move(float xOff,float yOff)
{
x+=xOff;
y+=yOff;
}
float getX() {return x;}
float getY() {return y;}
private:
float x,y;
}; class Rectangle:private Point//私有继承
{
public:
void initR(float x,float y,float w,float h)
{
initP(x,y);
this->w=w;
this->h=h;
}
void move(float xOff,float yOff){Point::move(xOff,yOff);}
float getX() {return Point::getX();}
float getY() {return Point::getY();}
float getH() {return h;}
float getW() {return w;}
private:
float w,h;
}; //main函数与上例完全相同

3.保护继承:保护继承中,基类的公有成员和保护成员都以保护成员身份出现在派生类中,而基类的私有成员不可直接访问。

例:

class A{
protected :
int x;
};
calss B: public A{
public:
void function();
};
void B::function(){
x=5;
}
int main(){
B b;
b.function();
return 0;
}

c++第四次作业:类的继承的更多相关文章

  1. C#图解教程(第四版)—03—类和继承

    1 使用基类的引用 派生类的实例由  基类的实例   加上  派生类 新增的成员 组成. 派生类的  引用   指向整个类对象,包括基类部分 重点:使用对象的  基类部分的引用  来访问对象   (父 ...

  2. Java第四次作业--面向对象高级特性(继承和多态)

    一.学习要点 认真看书并查阅相关资料,掌握以下内容: 掌握类的继承概念和设计 掌握构造方法的继承原则 掌握方法重写 掌握super键字和final关键字 理解多态的概念,掌握通过方法重写和方法重载机制 ...

  3. Java第四次作业——面向对象高级特性(继承和多态)

    Java第四次作业--面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能, ...

  4. Java第四次作业,面向对象高级特性(继承和多态)

    Java第四次作业-面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能,说 ...

  5. Java第四次作业—面向对象高级特性(继承和多态)

    Java第四次作业-面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能,说 ...

  6. 第四百零六节,自定义用户表类来继承Django的用户表类,

    第四百零六节,自定义用户表类来继承Django的用户表类, models.py from django.db import models # Create your models here. from ...

  7. python装饰器、继承、元类、mixin,四种給类动态添加类属性和方法的方式(一)

    介绍装饰器.继承.元类.mixin,四种給类动态添加类属性和方法的方式 有时候需要給类添加额外的东西,有些东西很频繁,每个类都需要,如果不想反复的复制粘贴到每个类,可以动态添加. # coding=u ...

  8. python3 入门 (四) 类与继承

    Python 类 Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法. 对象可以包含任意数量和类型的数据. p ...

  9. java第四节 类的继承/抽象/接口/多态性

    /* 类的继承 类的继承可以简化类的定义 java只支持单继承,不允许多重继承 可以有多层继承,即一个类可以继承其一个类的子类,如类B继承了类A,类C又可以继承类B 那么类C也间接继承了类A 子类继承 ...

随机推荐

  1. .Netcore 2.0 Ocelot Api网关教程(4)- 服务发现

    本文介绍Ocelot中的服务发现(Service Discovery),Ocelot允许指定一个服务发现提供器,之后将从中寻找下游服务的host和port来进行请求路由.关于服务发现的详细介绍请点击. ...

  2. Nmap使用手册参数详细说明

      nmap –iflist : 查看本地主机的接口信息和路由信息 -A :选项用于使用进攻性方式扫描 -T4: 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火 ...

  3. C语言递归之二叉树的最大深度

    题目描述 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例 给定二叉树 [3,9,20,null,null,15 ...

  4. jQuery代码书写规范

    1. 对于同一个对象不超过三个操作的,可以直接写成一行 $("li").show().unbind("click"); 2. 对于同一个对象的较多操作,建议每行 ...

  5. Pandas导入导出&pickle文件模块

    Pandas可以读取与存储的文件格式有很多 像csv,excel,json,html等,详细请看官方文档https://pandas.pydata.org/pandas-docs/stable/use ...

  6. Linux文件属性拓展知识

    文件删除恢复ext3grep,应该多养成好习惯,先备份在操作:要能快速还原,不容易还原,先通过多套测试环境测试,然后在操作. 企业面试题: 一个100M(100000K)的磁盘分区,分别写入1K的文件 ...

  7. Mac下安装SecureCRT客户端并激活

    1. 先下载SecureCRT和破解文件 默认下载到了当前用户的”下载”目录中 2. 在”Finder”中 打开 “scrt-7.3.0-657.osx_x64.dmg” 并将 SecureCRT复制 ...

  8. Netty的那些”锁”事

    Netty锁事的五个关键点: ① 在意锁的对象和范围  --> 减少粒度 ②  注意锁的对象本身大小   --> 减少空间占用 ③ 注意锁的速度 --> 提高速度 ④不同场景选择不同 ...

  9. php网络请求

    get请求 /** * get请求 * @param $url,请求地址 * @return bool|string */ function getRequest($url){ $headerArra ...

  10. redis发布订阅者

    发布者pub.py import redis conn = redis.Redis(host='127.0.0.1', decode_responses=True) conn.publish(') 订 ...