注册 登录
编程论坛 C++教室

String类 输出流重载 等等一些问题

lttz 发布于 2012-05-24 19:38, 462 次点击
先上代码:
#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.大神能够给小弟讲解一下感激不尽拉,最好附例子哈。
还有无参构造函数也不知道怎么写...
总之,帮我补充一下剩下的代码哈...
有什么意见和建议多多提出来,我想我应该有很多毛病在里面的,我接受哈.
万分感激!
2 回复
#2
nongzhaobo2012-05-24 21:16
貌似有点难........
#3
跳跳鱼2012-05-24 22:58
回复 楼主 lttz
你这个程序连个注释都没有。。看着很麻烦,不知道你要干嘛至于定义无参构造函数,只需要string(){};就够了
1