Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: lớp string cài đặt copy

  1. #1
    Ngày gia nhập
    08 2008
    Bài viết
    5

    Mặc định lớp string cài đặt copy

    PHP Code:
    class String{
    private:
         
    int len;
         
    char *str;
    public:
         
    string(const char *);
         
    string();
         
    string(const string&);
         
    string&operator=(const string)
        ~ 
    string;
         
    void append(const string)
        
    void out() const;
    };
    phép toán gán đc cài đặt như sau :
    string&string::operator=(const string &s){
       if(
    this!=&s){
       
    delete []str;
       
    len=s.len;
       
    str=new char[len];
       
    strcpy(str,s.str);
      }
    return *
    this;

    cho mình hỏi câu này nha cài đặt phương thức copy string::string(const string&)
    giúp mình nha mình đọc hoài ko hiểu câu này sao chép ra sao. Mong các anh giúp đỡ
    Đã được chỉnh sửa lần cuối bởi coolboy : 16-08-2008 lúc 05:58 PM. Lý do: sửa đoạn code
    SUDDENLY I WANNA CRY

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Cài đặt là làm sao vậy bạn????
    ý bạn hỏi cách code hay là nguyên lý của nó?? bạn phải nói rõ ra mọi người mới giúp bạn được.

  3. #3
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn cứ bưng nguyên xi code trong cài đặt của toán tử "=" qua là xong.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  4. #4
    Ngày gia nhập
    08 2008
    Bài viết
    5

    đây là đề thầy giáo cho , mình đọc hoài ko hiểu mong các pác giúp đoạn code minh hoạ cũng đc
    SUDDENLY I WANNA CRY

  5. #5
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Trích dẫn Nguyên bản được gửi bởi coolboy Xem bài viết
    đây là đề thầy giáo cho , mình đọc hoài ko hiểu mong các pác giúp đoạn code minh hoạ cũng đc
    Nhưng code đó rồi thôi,bạn cần code gì nữa
    Cánh Chym ứ mỏi

  6. #6
    Ngày gia nhập
    08 2008
    Bài viết
    5

    Mặc định lớp string cài đặt copy

    uhm để mình xem lại, à mà còn 1 câu nữa là "cài đặt phép toán + để nối 2 chuỗi " phần này là mình mới học nên chưa hiểu rõ về operator+ mong các pác giúp đỡ
    SUDDENLY I WANNA CRY

  7. #7
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Bạn xem code này xem, máy mình không có trình biên dich nào nên chưa test được,không biết có lỗi nào không nữa.
    PHP Code:
    #include<cstring>
    using std::cout;
    using std::cin;
    class 
    string
    {
    private:
        
    char s;
        
    int length;
    public:
        
    stringchar s1="");
        
    string(string &s1);
        ~
    string();
        
    stringoperator=(string &s1);
        
    stringoperator+=(string &s1);
        
    bool operator!();
        
    bool operator==(string &s1);
        
    bool operator<(string &s1);
        
    bool operator>(string &s1);
        
    bool operator!=(string &s1);
        
    bool operator<=(string &s1);
        
    bool operator>=(string &s1);
        
    char &operator[](int index);
        
    friend ostream&operator<<(ostream &,string&s);
        
    friend istreamoperator>>(istream &,string&s);
    };
    string::~string()
    {
        
    delete s;
    }

    string::string(char *s1)
    {
        
    length=strlen(s1);
        
    s=new char[length+1];
        
    strcpy(s,s1);
    }
    string::string(string &s1)
    {
        
    length=s1.length;
        
    s=new char[length+1];
        
    strcpy(s,s1.s);
    }
    stringstring::operator=(string &s1)
    {
        if(
    this!=&s1)
        {
            
    delete s;
            
    length=s1.length;
            
    s=new char[length+1];
            
    strcpy(s,s1.s);
        }
        else
            
    cout<<" Hai doi tuong la mot :"<<endl;
        return *
    this;

    }

    string &string::operator+=(string &s1)
    {
        
    char *temp=s;
        
    length+=s1.length;
        
    s=new char[length+1];
        
    strcpy(s,temp);
        
    strcat(s,s1.s);
        return *
    this;
    }
    bool string::operator!()
    {
        return (
    length==0);
    }
    bool string::operator==(string &s1)
    {
        return (
    strcmp(s,s1.s)==0);
    }

    bool string::operator!=(string &s1)
    {
        return (*
    this==s1);
    }

    bool string::operator<(string &s1)
    {
        return (
    strcmp(s,s1.s)<0);
    }

    bool string::operator>(string &s1)
    {
        return (
    s1<*this);
    }

    char &string::operator[](int i)
    {
        return 
    s[i];
    }
    bool string::operator>=(string &s1)
    {
        return !(*
    this<s1);
    }

    bol string::operator<=(string &s1)
    {
        return !(*
    this>s1);
    }
    ostream &operator<<(ostream &mh,string &s1)
    {
        
    mh<<" Hien thi xau :"<<endl;
        
    mh<<s1.s<<endl;
        return 
    mh;
    }
    istream &operator>>(istream &bp,string &s1)
    {
        
    cout <<" Nhap xau: ";
        
    bp>>s1.s;
        return 
    bp;
    }
    int main()
    {
        
    string s,s1,s2;
        
    cin>>s;//kiem tra toan tu nhap
        
    cout<<s;//kiem tra toan tu xuat
        
    s1=s;//kiem tra toan tu gan
        
    cout<<s1;
        
    s+=s1;//kiem tra toan tu noi xau
        
    cout<<s;
        if(!
    s2)//kiem tra toan tu xau rong
            
    cout<<"Xau rong ";
        else
            
    cout<<"Xau khong rong";
        if(
    s==s1)//kiem tra toan tu ==
            
    cout<<" s == s1"<<endl;
        else
            
    cout<<"s!=s1"<<endl;//kiem tra toan tu khac
        
    cout<<"s[1]="<<s[1];//kiem tra toan tu lay gia tri tai chi so
        
    return 0;

    Cánh Chym ứ mỏi

  8. #8
    Ngày gia nhập
    08 2008
    Bài viết
    5

    thanks bạn nha để mình xem lại và học hỏi thêm
    SUDDENLY I WANNA CRY

Các đề tài tương tự

  1. thắc mắc về copy file và kiểm tra tiến trình copy
    Gửi bởi RoboWonder trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 13
    Bài viết cuối: 27-03-2016, 07:15 PM
  2. ADO.NET Hàm Copy file trong c#,copy thiếu dữ liệu
    Gửi bởi gatrongpro trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 08-12-2013, 09:40 PM
  3. Bài tập C++ Lỗi tron quá trình copy string của struct
    Gửi bởi phongdt trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 09-11-2012, 10:34 PM
  4. Algorithm Cách copy một string trong C#?
    Gửi bởi saonam trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 30-06-2011, 10:21 PM
  5. Firefox Lỗi: Phải nhấn Ctrl+C hoặc Copy 2 lần mới copy được văn bản.
    Gửi bởi Kevin Hoang trong diễn đàn Thắc mắc chung
    Trả lời: 3
    Bài viết cuối: 17-01-2011, 11:17 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn