p9_5.cpp

来自「相当丰富的C++源码」· C++ 代码 · 共 53 行

CPP
53
字号
/********************************************
*   p9_5.cpp                                *
*  重载下标运算符[ ]为类的成员函数的字符串类*
********************************************/
#include <iostream>
using namespace std;
class String {
    private:
      char *Str;
	  int len;
	public: 
    void ShowStr()
	{
		cout<<"string:"<<Str<<",length:"<<len<<endl;
	}
	String(const char *p=NULL)
	{
		if (p) 
		{
		   len=strlen(p);
		   Str=new char[len+1];
		   strcpy(Str,p);
		} else 
		{
		   len=0;
		   Str=NULL;
		}
	}
	~String()
	{
		if (Str!=NULL)
		   delete [] Str;
	}
   char &operator[](int n)             //重载运算符[], 处理String对象
   {   
	   return *(Str+n);   
   }  
   const char &operator[](int n)const //重载运算符[],处理const String对象
   {   
	   return *(Str+n);   
   }   
};
void main(void)
{   
	String S1("0123456789abcdef");
	S1.ShowStr();
	S1[10]='A';
	cout<<"after S1[10]=A"<<endl;
    S1.ShowStr();
    const String S2("ABCDEFGHIJKLMN");
    cout<<"S2[10]="<<S2[10]<<endl;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?