标题:各种问题,求解释
只看楼主
lyjdyq
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-12-28
结帖率:50%
已结贴  问题点数:15 回复次数:3 
各种问题,求解释
#include<iostream>
using std::ostream;
using std::istream;
#ifndef STRING_H_
#define STRING_H_
class String
{
private:
    char *str;
    int len;
    static int num_string;
public:
    String(char *s);
    String();
    String(const String &);
    ~String();
    int length()const {return len;};
    String & operator=(const String &);
    String & operator=(const char *);
    char & operator[](int i);
    const char & operator[](int i)const;
    friend bool operator<(const String &st1,const String &st2);
    friend bool operator>(const String &sti,const String &st2);
    friend bool operator==(const String &st1,const String &st2);
    friend ostream & operator<<(ostream & os,const String & st);
    friend istream & operator>>(istream & is,const String & st);
};
#endif
#include<cstring>
#include"String.h"
using std::cout;
using std::cin;
int String::num_string=0;
String::String(char *s)
{
    len=std::strlen(s);
    str=new char[len+1];
    std::strcpy(str,s);
    num_string++;
}
String::String()
{
    len=4;
    str=new char[1];
    str[0]='\0';
    num_string++;
}
String::String(const String & s)
{
    num_string++;
    len=s.len;
    str=new char[len+1];
    std::strcpy(str,s.str);
}
String::~String()
{
    --num_string;
    delete [] str;
}
String & String::operator=(const String &st)
{
    if(this==&st)
        return *this;
    delete[]str;
    len=st.len;
    str=new char[len+1];
    std::strcpy(str,st.str);
    return *this;
}
String & String::operator=(const char *s)
{
    delete[]str;
    len=std::strlen(s);
    str=new char[len+1];
    std::strcpy(str,s);
    return *this;
}
char & String::operator[](int i)
{
    return str[i];
}
const char & String::operator[](int i)const
{
    return str[i];
}
bool operator<(const String &st1,const String &st2)
{
    return (std::strcmp(st1.str,st2.str)<0);
}
bool operator>(const String &st1,const String &st2)
{
    return (std::strcmp(st1.str,st2.str)>0);
}
bool operator==(const String &st1,const String &st2)
{
    return (std::strcmp(st1.str,st2.str)==0);
}
ostream & operator<<(ostream & os,const String & st)
{
    os<<st.str;
    return os;
}
istream & operator>>(istream & is,const String & st)
{
    char temp[80];
    is.get(temp,80);
    if(is)
        st=temp;
    while(is&&is.get()!='\n')
        continue;
    return is;
}
#include<iostream>
#include"String.h"
using namespace std;
int main()
{
    char *lyj="my name is lyj";
    String s1("my name is dyq");
    String s2(lyj);
    String s3=s2;
    String s4;
    string s5;
    s4="my name is dyq";
    cout<<"输入s5:\n";
    cin>>s5;
    cout<<s1<<"   s1\n";
    cout<<s2<<"   s2\n";
    cout<<s3<<"   s3\n";
    cout<<s4<<"   s4\n";
    cout<<s5<<"   s5\n";
    if(s1==s4)
        cout<<"s1=s4\n";
    else
        cout<<"错误\n";
    return 0;
}
搜索更多相关主题的帖子: private include public friend return 
2014-08-09 16:28
willingshow
Rank: 1
等 级:新手上路
帖 子:1
专家分:6
注 册:2014-8-9
得分:6 
你要我们干什么?
2014-08-09 19:02
lyjdyq
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-12-28
得分:0 
回复 2 楼 willingshow
一个问题解决,另一个又出来了,我都不知道到底出了什么问题了,麻烦大神修改一下,发个编译成功的过来看看
2014-08-10 12:32
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:6 
以下是引用lyjdyq在2014-8-10 12:32:01的发言:

一个问题解决,另一个又出来了,我都不知道到底出了什么问题了,麻烦大神修改一下,发个编译成功的过来看看

也描述问题是什么 也不说你到底想干什么 难道要我们自己看代码自己想?不好意思 这种人我是不伺候 别人愿意管也跟我没关系

祝楼主好运
2014-08-10 13:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-434858-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.160698 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved