请编写类的成员函数char & CharArray::operator[](int i),将下标运算符[]重载,如果i没有为负数或超界则返回该字符,否则输出“Index out of range.”并且返回0。要求使用if判断实现算法。输出结果如下:

admin2010-02-08  38

问题 请编写类的成员函数char & CharArray::operator[](int i),将下标运算符[]重载,如果i没有为负数或超界则返回该字符,否则输出“Index out of range.”并且返回0。要求使用if判断实现算法。输出结果如下:
       Index out of range.
       Index out Of range.
       string
       Index out of range.
       Index out of range.
       6
   注意:部分源程序已存在文件test24_2.cpp中。
   请勿修改主函数main和其他函数中的任何内容,仅在函数CharArray::operator[]的花括号中填写若干语句。
   文件test24_2.cpp的内容如下:
       #include<iostream.h>
       class CharArray
        {
       public:
         CharArray(int l)
         {
                Length=l;
                Buff=new char[Length];
         }
         ~CharArray ()
         {
                delete Buff;
         }
         int GetLength ()
         {
                return Length;
         }
         char & operator[] (int i);
       private:
         int Length;
         char *Buff;
       };
       char & CharArray::operator [] (int i)
       {
       }
       void main ()
       {
         int cnt;
         CharArray string1(6);
         char *string2="string";
         for(cnt=0; cnt<8; cnt++)
                string1[cnt] = string2[cnt];
        cout<<"\n";
         for(cnt=0; cnt<8; cnt++)
               cout<<string1[cnt];
        cout<<"\n";
        cout<<string1.GetLength()<<endl;
       }

选项

答案char & CharArray::operator [](int i) { static char ch=0; if(i<Length && i>=0) return Buff[i]; else { cout<<"\nIndex out Of range."; return ch; } }

解析 本题主要考查考生对于运算符重载的掌握,重载下标运算是安全数组中非常重要的。注意下标操作符最终的目的是返回该下标对应的字符。
转载请注明原文地址:https://jikaoti.com/ti/0MkiFFFM
0

最新回复(0)