C++重载下标操作符[](一)
C++ 重载 操作符 下标
2023-09-14 09:09:31 时间
#include <iostream>
#include<string>
using namespace std;
class Array{
public:
Array(){length=0;num=NULL;};
Array(int );
int &operator[](int );
const int &operator [](int ) const;
int getlength() const {return length;};
private:
int length;
int *num;
};
Array::Array(int n) {
try{
num=new int [n];
}
catch(bad_alloc)
{
cerr<<"allocate storage failure"<<endl;
throw;
}
length =n;
}
int &Array::operator[](int i) {
if (i<0 || i>length)
throw string("out of bounds");
return num[i];
}
const int &Array::operator[](int i) const {
if (i<0 || i>length)
throw string("out of bounds");
return num[i];
}
int main(){
Array A(5);
int i ;
try{
for (i=0;i<A.getlength();i++)
A[i]=i;
for (i=0;i<6;i++)
cout<<A[i]<<endl;
}
catch (string s)
{
cerr<<s<<",i ="<<i<<endl;
}
return 0;
}
相关文章
- EasyC++64,运算符重载
- EasyC++86,多继承(一)
- c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法「建议收藏」
- C++运算符重载(二)之左移运算符重载
- C++运算符重载的一些规则
- C++11学习笔记2
- C++20 Text Formatting/fmtlib 适配问题小记
- 【C++】"undefined reference to" 问题常见的解决方法
- 深入理解 C++权限管理
- 【C++ 语言】容器 ( queue 队列 | stack 栈 | priority_queue 优先级队列 | set 集合 | 容器遍历 | map )
- C++函数重载详解
- C++重载=(C++重载赋值运算符)
- C++重载<<和>>(C++重载输出运算符和输入运算符)
- C++调用迅雷接口解析XML下载功能(迅雷下载功能)
- C/C++获取目录下的文件列表信息
- C++new、delete(new[]、delete[])操作符重载需要注意的问题
- VisualC++程序设计中WindowsGDI贴图闪烁的解决方法