博客
关于我
(c++)4.2单继承
阅读量:725 次
发布时间:2019-03-21

本文共 1441 字,大约阅读时间需要 4 分钟。

C++继承机制概述

不论是哪种继承方式,这三个核心概念都在起作用:公有继承、私有继承以及保护继承。各类继承方式决定了派生类对基类成员的访问权限,从而影响代码的封装性和维护性。

以公有继承的例子为例,子类对基类的继承方式决定了对成员的访问权限。默认情况下,不同的继承方式会带来不同的访问权限规则。

以下是一个使用多继承模型的典型例子:

代码摘录:

#include 
using namespace std;class Point {public: void setxy(int myx, int myy) { X = myx; Y = myy; } void movexy(int x, int y) { X += x; Y += y; }protected: int X, Y;};class Circle : public Point {public: void setr(int myx, int myy, int myr) { setxy(myx, myy); R = myr; } void display() { cout << "The position of center is("; cout << X << ")"; cout << " and y coordinate is "; cout << Y << ")"; cout << "The radius of Circle is "; cout << R << endl; }protected: int R;};void Circle::display() { cout << "The position of center is(" << X << ")"; cout << " and y coordinate is "; cout << Y << ")"; cout << "The radius of Circle is "; cout << R << endl;}

代码解释:

  • "class Point" 定义了基类,包含两个成员函数 setxy 和 movexy,分别用于设置坐标点的 X 和 Y 值,以及移动坐标的位置。由于这些成员函数是公有的,子类继承时需要正确调用它们。
  • "class Circle : public Point" 定义了一个继承自 Point 的派生类,采用的是公有继承方式。这意味着 Circle 类不仅可以访问 Point 类的成员,还可以根据需要扩展自己的成员属性和函数。
  • "setr" 函数用于设置圆的半径 R,同时调用父类的 setxy 函数来初始化中心坐标。
  • "display" 函数用于输出圆的中心坐标和半径。它通过在主程序中被调用,打印出圆的相关信息。
  • 执行结果:

    • 初始数据:调用 setr 函数时,中心坐标被初始化为 (4, 5),半径设置为 6。
    • 新数据:调用 movexy 函数后,中心坐标被更新为 (11, 13),半径保持不变。

    上述代码展示了公有继承方式的典型应用,验证了我们在多继承模型中对访问权限的控制。通过合理设计继承层次,有助于提高代码的可维护性和复用性。

    转载地址:http://nbirz.baihongyu.com/

    你可能感兴趣的文章
    python 常量_零基础学Python系列之一:Python的变量与常量
    查看>>
    Python 并发编程
    查看>>
    Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能
    查看>>
    python 序列化操作
    查看>>
    Python 开发者,这 7 个 VS Code 插件极力推荐
    查看>>
    python手把手视频_硬货 | 手把手带你构建视频分类模型(附Python演练))
    查看>>
    python 录音左右声道_Python分离立体声wav压缩文件的左右声道
    查看>>
    Python 循环异或对文件进行加解密
    查看>>
    Python开发环境搭建(附VMware安装包及虚拟机环境)
    查看>>
    python 微信扫码登录_python实现微信第三方网站扫码登录(Django)
    查看>>
    Python 快速下载依赖
    查看>>
    python实现非参数统计的Cochran检验 (附完整源码)
    查看>>
    python 怎么验证是否安装成功 scrapy
    查看>>
    Python 手写数字识别-1
    查看>>
    Python实现接口自动化测试库(JSON与Requests)详解
    查看>>
    Python 手写数字识别-3-sklearn中的几种算法
    查看>>
    python实现SSIM和MSSSIM计算 (附完整源码)
    查看>>
    Python 打开文件注意事项
    查看>>
    python 批量修改文件名_python windows下批量修改文件名
    查看>>
    Python 抓取网页乱码问题 以及EXCEL乱码
    查看>>