博客
关于我
(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/

    你可能感兴趣的文章
    OPEN CASCADE Curve Continuity
    查看>>
    Open Graph Protocol(开放内容协议)
    查看>>
    Open vSwitch实验常用命令
    查看>>
    Open WebUI 忘了登入密码怎么办?
    查看>>
    open-vm-tools-dkms : 依赖: open-vm-tools (>= 2:9.4.0-1280544-5ubuntu3) 但是它将不会被安装
    查看>>
    open3d-Dll缺失,未找到指定模块解决
    查看>>
    Openbox-桌面图标设置
    查看>>
    opencart出现no such file or dictionary
    查看>>
    opencv Mat push_back
    查看>>
    opencv SVM分类Demo
    查看>>
    opencv videocapture读取视频cap.isOpened 输出总是false
    查看>>
    opencv waitKey() 函数理解及应用
    查看>>
    OpenCV 中的图像转换
    查看>>
    OpenCV 人脸识别 C++实例代码
    查看>>
    OpenCV 在 Linux 上的 python 与 anaconda 无法正常工作.收到未实现 cv2.imshow() 的错误
    查看>>
    Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)上
    查看>>
    opencv 模板匹配, 已解决模板过大程序不工作的bug
    查看>>
    OpenCV 错误:(-215)size.width>0 &&函数imshow中的size.height>0
    查看>>
    opencv&Python——多种边缘检测
    查看>>
    opencv&python——高通滤波器和低通滤波器
    查看>>