#include <iostream>
using namespace std;
class demo
{
private:
char * sz;
int len;
public:
demo (int l = 0 ) //
{
len = l;
sz = new char [len]; //分配内存
}
~demo()
{
delete [] sz;
sz = NULL;
}
int getlen ( ) //获取len
{
return len;
}
char & operator [] ( int i );
void print ()
{
cout<<sz<<endl;
}
};
char & demo::operator [] ( int i ) // 成员函数重载 [ ] 运算符
{
static char def = '\0'; //局部静态变量
if ( i < len && i >= 0)
return sz[i];
else
cout<<"下标越界"<<endl;
return def;
}
int main()
{
int cnt = 0;
demo CH (8);
char *H = "hello!";
CH.print ();
for ( ; cnt < strlen (H) +1 ; cnt ++)
{
CH[cnt]= H[cnt];
}
CH.print();
for ( cnt = 0; cnt < CH.getlen () ; cnt ++)
{
cout<<CH[cnt];
}
return 0;
}
总是不想睡觉 , 很迷茫。