c++自定义对象支持按下标遍历
- #include<iostream>
- #include<string>
- using namespace std;
- class Array
- {
- public:
- Array(){length = 0; num = NULL;};
- Array(int n);
- 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;
- }
原文地址:https://www.cnblogs.com/qiumingcheng/p/15479975.html