#include <iostream>
using namespace std;class Array{public:Array(int length=0);//构造函数~Array();           //析构函数public:int &operator[](int i);             //重载操作符[]const int &operator[](int i)const ;public:int length() const {return m_length;}  //获取数组长度void display() const;private:int m_length; //数组长度int *m_p;     //数组指针
};//新初始化一个数组
Array::Array(int length):m_length(length) {if (length==0){m_p=NULL;}else{m_p=new int [length];}
}Array::~Array(){delete [] m_p;
}int &Array::operator[](int i){return m_p[i];
}const int & Array::operator[](int i) const {return m_p[i];
}void Array::display() const {for (int i=0;i<m_length;i++){cout<<m_p[i]<<" ";}cout<<endl;}int main(){int n=10;//初始化一个长度为n的数组,在c++中初始化的数组元素都是0Array A(n);//对A中的元素进行赋值for (int i=0,len=A.length()+100;i<len;i++){A[i]=i*5;}A.display();const Array B(n);B.display();cout<<"最后一个数="<<B[1000]<<endl;return 0;
}

C++重载下标操作符[](二)相关推荐

  1. 【C++】重载运算符(二)

    1.4 下标运算符p501 下标运算符必须是成员函数,表示容器的类通常可以通过容器中的位置访问元素,定义下标运算符operator[] 一个包含下标运算符的类,通常,定义2个版本:一个返回普通引用,另 ...

  2. 【Groovy】map 集合 ( map 集合操作符重载 | *. 展开操作符 | 代码示例 )

    文章目录 一.map 集合 " *. " 展开操作符 二.代码示例 一.map 集合 " *. " 展开操作符 对 map 集合使用 " *. &qu ...

  3. C++中重载下标运算符[]

    1.C++中重载下标运算符[] C++规定,下标运算符[]必须以成员函数的形式进行重载,该重载函数在类中的声明格式如下: 返回值类型 & operator[] (参数列表);// 或者cons ...

  4. 编写程序获取 vector 容器的第一个元素。分别使用下标 操作符、front 函数以及 begin 函数实现该功能,并提 供空的 vector 容器测试你的程序

    /*********************** 编写程序获取 vector 容器的第一个元素.分别使用下标 操作符.front 函数以及 begin 函数实现该功能,并提 供空的 vector 容器 ...

  5. C++中复制构造函数与重载赋值操作符

    我们都知道,在C++中建立一个类,这个类中肯定会包括构造函数.析构函数.复制构造函数和重载赋值操作:即使在你没有明确定义的情况下,编译器也会给你生成这样的四个函数.例如以下类:     class C ...

  6. C++重载IO操作符

    操作符的重载有一定的规则,而IO操作符必须重载为普通函数,且应该声明为类的友元函数.我试了,非友元也可以,但是必须提供访问成员变量的函数,所以,出于效率的考虑还是应该定义为友元. 规则如下: 1.  ...

  7. python中小于号的重载_Python操作符重载

    可以根据所使用的操作数更改Python中运算符的含义.这种做法被称为运算符重载. Python操作系统适用于内置类. 但同一运算符的行为在不同的类型有所不同. 例如,+运算符将对两个数字执行算术加法, ...

  8. C++重载下标运算符

    C++ 规定,下标运算符[ ]必须以成员函数的形式进行重载.该重载函数在类中的声明格式如下: 返回值类型 & operator[ ] (参数); 或者: const 返回值类型 & o ...

  9. C++——如何重载*(指针)操作符

    在学习boost库的4.3.3节时,看到了在类中重载了*(指针)操作符,就自己写了个测试程序~ #include <iostream> using namespace std;class ...

最新文章

  1. 基于JSP实现的项目管理平台系统
  2. Selenium3+python自动化009- 多选框
  3. C#中在定义事件委托时怎样跨窗体传递参数
  4. Verilog功能模块 —— 按键消抖
  5. 基于VC++开发串口通信的方法
  6. 群同态基本定理证明_群论(7): 群代数, 群表示基础
  7. C#通过修改注册表改变IE默认选项
  8. 在jsp中使用smartupload组件上传文件- -
  9. oracle /etc/fonts simfang.ttf,GitHub - jiaxiaochu/font: 系统缺失字体导致无法显示中文和乱码的解决办法...
  10. 中国第一个正式商用SD-WAN项目面世
  11. PyTorch之VGG16网络结构详解以及源码解读
  12. 【知乎问答】有哪些特殊的搜索引擎?
  13. Biotin-PEG2k-NHS,Biotin-PEG2000-NHS,PEG衍生物
  14. php微信里面换行符,如何在字符串中间加换行符js微信小程序实现人脸识别
  15. teamviewer12 linux安装,ubuntu16.04安装teamviewer12依赖包解决
  16. 关于小波变换的一些理解
  17. 热血传奇服务端装备穿戴触发脚本
  18. Javaweb8==通过tomcat访问到一段代码并执行,同时读取前端数据和从后端给前端返回数据。通过继承javaEE的HttpServlet类。实现登录注册功能和前端界面。
  19. python中文版下载安装教程,python最新版本安装教程
  20. 鲸鸿动能流量变现服务中国大陆地区测试流程

热门文章

  1. 4.MATLAB基础编程操作——变量、常量、基础数学运算
  2. Http 面试知识点
  3. Scrum 冲刺博客第四篇
  4. 清理AD过期对象,并将结果发送给指定管理员
  5. [leetcode]Trapping Rain Water @ Python
  6. who killed my time?
  7. figure diagram illustrate exemplify profile
  8. 802.11N blockACK
  9. 进临界区(关全局中断)是否会影响数据的接收?
  10. STL容器之Deque-《C++标准库(第二版)》读书笔记