主题:[讨论]string类
先上代码:
#include<iostream.h>
#include<string.h>
class String
{
public:
String();
String(char *s);
String(String& t);
~String();
String& operator = (String &a);
String operator + (String &b);
friend ostream& operator<<(ostream& out,String& s);
protected:
char *p;
};
String::String()
{
}
String::String(char *s)
{
p=new char[strlen(s)+1];
if(p!=NULL)
strcpy(p,s);
}
String::~String()
{ if(p!=NULL)
delete p;
}
String::String(String& t)
{
p=new char[strlen(t.p)+1];
if(p!=NULL)
strcpy(p,t.p);
}
String String::operator +(String &b)
{ String s;
s.p=new char[strlen(p)+strlen(b.p)+1];
s.p=strcat(p,b.p);
return s;
}
String& String::operator =(String &a)
{
strcpy(p,a.p);
return *this;
}
void main()
{
String s1("abcdef"),s2("ghijkl"),s3,s4(s1);
s3=s1+s2;
}
我学的教材是<<c++程序设计教程>>清华大学出版
这是我想要写的String类,不是可运行的,输出流重载不懂哈...555555.大神能够给小弟讲解一下感激不尽拉,最好附例子哈。
还有无参构造函数也不知道怎么写...
总之,帮我补充一下剩下的代码哈...
有什么意见和建议多多提出来,我想我应该有很多毛病在里面的,我接受哈.
万分感激!
#include<iostream.h>
#include<string.h>
class String
{
public:
String();
String(char *s);
String(String& t);
~String();
String& operator = (String &a);
String operator + (String &b);
friend ostream& operator<<(ostream& out,String& s);
protected:
char *p;
};
String::String()
{
}
String::String(char *s)
{
p=new char[strlen(s)+1];
if(p!=NULL)
strcpy(p,s);
}
String::~String()
{ if(p!=NULL)
delete p;
}
String::String(String& t)
{
p=new char[strlen(t.p)+1];
if(p!=NULL)
strcpy(p,t.p);
}
String String::operator +(String &b)
{ String s;
s.p=new char[strlen(p)+strlen(b.p)+1];
s.p=strcat(p,b.p);
return s;
}
String& String::operator =(String &a)
{
strcpy(p,a.p);
return *this;
}
void main()
{
String s1("abcdef"),s2("ghijkl"),s3,s4(s1);
s3=s1+s2;
}
我学的教材是<<c++程序设计教程>>清华大学出版
这是我想要写的String类,不是可运行的,输出流重载不懂哈...555555.大神能够给小弟讲解一下感激不尽拉,最好附例子哈。
还有无参构造函数也不知道怎么写...
总之,帮我补充一下剩下的代码哈...
有什么意见和建议多多提出来,我想我应该有很多毛病在里面的,我接受哈.
万分感激!