[code=C/C++][/code]
#include <iostream.h>
#include <string.h>
#include <stdio.h>
class string
{
char *s;
public:
string()
{
char ss[10];
cin>>ss;
s=new char[strlen(ss)+1];
strcpy(s,ss)
}
string(string& ss)
{
s=new char[strlen(ss.s)+1];
strcpy(s,ss.s);
}
~string()
{
delete[]s;
}
char *getstring()
{
return s;
}
void displaystring()
{
cout<<s<<endl;
}
string operator + (string s2) //隐式调用s1+s2
{
char *t=s; //将字符指针s1的地址附给t,找这么一个传递作用的t有必要么???
unsigned int j=strlen(s);
s=new char[j+strlen[s2.getstring())+1]; //将字符串s1和s2的大小之和给s
for(unsigned int i=0;i<=j;i++) //将字符串s1的内容附给新的s,问题是,
*(s+i)=*(t+i); // *(s+i)=*(t+i) 是什么意思?加入*号说明为内容,而非地址,t+i是什么?s+i是什么?
for(i=0;i<=strlen(s2.getstring());i++) //这句应该是把s2填入s,问题:s2.getstring()调用的是字符串内容吧?
*(s+j+i)=*(s2.getstring()+i); //为什么内容+i,另外s+j+i是什么????
delete []t;
return *this;
} |