第8单元 - 作业2:OJ编程 - 重载数组下标运算符

查看帮助

返回
 

温馨提示:

1.本次作业属于Online Judge题目,提交后由系统即时判分。

2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩。

练习数组下标运算符重载

依照学术诚信条款,我保证此作业是本人独立完成的。

1
练习数组下标运算符重载(6分)

本题目具体内容请参见 【第8单元 - 单元作业2说明

时间限制:500ms内存限制:32000kb
 
  1. #include <iostream>
  2. #include <limits>
  3. #include <string>
  4. #include <sstream>
  5. using namespace std;
  6.  
  7. class MyShape {
  8. protected:
  9. int R_, G_, B_;
  10.  
  11. string colorToString() {
  12. stringstream ss;
  13. ss << R_ << " " << G_ << " " << B_;
  14. return ss.str();
  15. }
  16. public:
  17. void setColor(int R, int G, int B) {
  18. R_ = R; G_ = G, B_ = B;
  19. }
  20. int getR() {
  21. return R_;
  22. }
  23. int getG() {
  24. return G_;
  25. }
  26. int getB() {
  27. return B_;
  28. }
  29. virtual void Draw() = 0;
  30. MyShape() {
  31. R_ = 255; G_ = 255, B_ = 255;
  32. }
  33. };
  34.  
  35. class MyCircle : public MyShape {
  36. private:
  37. int x_, y_, radius_;
  38. int min;
  39.  
  40. public:
  41. MyCircle(int x, int y, int radius) {
  42. x_ = x;
  43. y_ = y;
  44. radius_ = radius;
  45. }
  46.  
  47. MyCircle() {
  48. x_ = y_ = 200;
  49. radius_ = 100;
  50. }
  51.  
  52. MyCircle(MyCircle& aCircle) {
  53. x_ = aCircle.x_;
  54. y_ = aCircle.y_;
  55. radius_ = aCircle.radius_;
  56. R_ = aCircle.getR();
  57. G_ = aCircle.getG();
  58. B_ = aCircle.getB();
  59. }
  60. void setCenter(int x, int y) {
  61. x_ = x;
  62. y_ = y;
  63. }
  64.  
  65. void setRadius(int radius) {
  66. radius_ = radius;
  67. }
  68.  
  69. void Draw() {
  70. }
  71.  
  72. //----在此处添加关系运算符 >、<、>=、<=、==、!= 的重载原型声明
  73. int& operator[](const int &index);
  74. };
  75.  
  76. //----在此处添加关系运算符的重载定义
  77. int& MyCircle::operator[](const int & index)
  78. {
  79. if (index == 0)
  80. {
  81. return x_;
  82. }
  83. else if (index == 1)
  84. {
  85. return y_;
  86. }
  87. else if (index == 2)
  88. {
  89. return radius_;
  90. }
  91. else
  92. {
  93. min = numeric_limits<int>::min();//下标超出范围,则返回带符号整型数中最小的值
  94. return min;
  95. }
  96. }
  97.  
  98. int main() {
  99. int x, y, r = 0;
  100. cin >> x >> y >> r;
  101. MyCircle c1(x, y, r);
  102. MyCircle c2;
  103. c2[2] = x;
  104. for (int i = 0; i <= 3; i++) {
  105. cout << c1[i] << endl;
  106. cout << c2[i - 1] << endl;
  107. }
  108.  
  109. return 0;
  110. }

网易云课堂_C++程序设计入门(下)_第8单元:年年岁岁花相似– 运算符重载_第8单元 - 作业2:OJ编程 - 重载数组下标运算符的更多相关文章

  1. 网易云课堂_C++程序设计入门(下)_第10单元:月映千江未减明 – 模板_第10单元 - 单元作业:OJ编程 - 创建数组类模板

    第10单元 - 单元作业:OJ编程 - 创建数组类模板 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提 ...

  2. 网易云课堂_C++程序设计入门(下)_第9单元:白公曾咏牡丹芳,一种鲜妍独“异常”_第9单元 - 作业5:OJ编程 - 使用异常进行图形类的错误处理

    第9单元 - 作业5:OJ编程 - 使用异常进行图形类的错误处理 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前 ...

  3. 网易云课堂_C++程序设计入门(下)_第7单元:出入虽同趣,所向各有宜 – 文件输入和输出_第7单元 - 作业2:编程互评

    第7单元 - 作业2:编程互评 查看帮助 返回   提交作业(剩余10天) 完成并提交作业     作业批改 互评训练   互评作业   自评作业     成绩公布 查看成绩   由于在线编程不支持 ...

  4. 网易云课堂_C++程序设计入门(下)_期末考试_期末考试在线编程题目

    期末考试在线编程题目 返回考试   本次考试题目一共两个,在考试期间可以不限制次数地提交 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止时间 ...

  5. 网易云课堂_C++程序设计入门(下)_第11单元:工欲善其事必先利其器 - STL简介_第11单元 - 单元作业2:OJ编程 - list 与 deque

    第11单元 - 单元作业2:OJ编程 - list 与 deque 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之 ...

  6. 网易云课堂_C++程序设计入门(上)_第2单元:丹青画松石– EGE图形库

    第2节:一个简单的EGE程序 #ifndef _GRAPHICS_H_ #define _GRAPHICS_H_ #ifndef __cplusplus #error You must use C++ ...

  7. 网易云课堂_C++程序设计入门(上)_第6单元:丹枫虽老犹多态–继承与多态_第6单元作业【2】- 在线编程(难度:中)

    第6单元作业[2]- 在线编程(难度:中) 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...

  8. 网易云课堂_C++程序设计入门(上)_第1单元:C++概览_第1单元作业 - 写代码 - 互评 (难度:易)

    第1单元作业 - 写代码 - 互评 (难度:易) 查看帮助 返回   提交作业(截止时间已过) 完成并提交作业     作业批改 互评训练   互评作业   自评作业     成绩公布 查看成绩 温 ...

  9. 网易云课堂_C++程序设计入门(上)_第5单元:万类霜天竞自由 – 对象和类的更多内容_第5单元作业【4】 - 在线编程(难度:难)

    第5单元作业[4] - 在线编程(难度:难) 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系 ...

随机推荐

  1. Windows 下apache https配置(phpstudy)

    1.首先获取证书,https://www.pianyissl.com/  免费三个月的 或者 自己生成私钥.证书,然后应用到apache中. http://blog.sina.com.cn/s/blo ...

  2. iconv_open - 分配一个字符集转换的描述符

    总览 (SYNOPSIS) #include <iconv.h> iconv_t iconv_open (const char* tocode, const char* fromcode) ...

  3. Windows下搭建Nacos及Seata

    一.简介 本文主要描述Nacos及Seata在Windows环境下环境搭建 下载相关软件: Nacos-1.1.4 Seata-0.9.0 二.安装 2.1安装Nacos 解压nacos-server ...

  4. C#实现Base64处理加解密

    using System;using System.Text; namespace Common{    /// <summary>    /// 实现Base64加密解密    ///  ...

  5. 如何给自己的Python项目制作安装包

    Packaging Python Projects¶ 本教程将指导您如何打包一个简单的Python项目.它将向您展示如何添加必要的文件和结构来创建包,如何构建包以及如何将其上载到Python包索引. ...

  6. for循环与内置方法详解

    ''' for循环与内置方法详解 ''' # 循环:重复(按照某种规律的)做一件事情 # lt = [1, 2, 3, 4] # # ind = 0 # # while True: # print(l ...

  7. STM32Cube IDE配置串口发送与接收

    此项目源码下载地址:https://github.com/lizhiqiang0204/STM32CubeIDE_Uart 串口与中断配置如下 在生成的main函数中,添加开启串口接收中断 HAL_I ...

  8. win7抓带tag标记报文

    1. 本地连接 ,右键→属性→高级→属性里选择“优先级和 VLAN” ,看右 边的 “值” 是不是已经启用,  没有启用的话就启用它. (如果没有这个选项, 那你可能要把网卡驱动升个高版本的了. ) ...

  9. 22.从上往下打印二叉树(python)

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. class Solution: # 返回从上到下每个节点值列表,例:[1,2,3] def PrintFromTopToBottom( ...

  10. [Usaco2007 Jan]Balanced Lineup排队

    [Usaco2007 Jan]Balanced Lineup排队 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 2333 Solved: 1424 Des ...