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

Đề tài: [C++]Quả tải toán tử xuất << mọi người dúp mình nha.

  1. #1
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Mặc định [C++]Quả tải toán tử xuất << mọi người dúp mình nha.

    VD trong lớp Điểm đơn thuần thế này.
    PHP Code:
    #include <iostream.h>
    #include <conio.h>
    #include <math.h>
    class diem
    {
          private:
           
    float x;
          
    float y;
          
       public:
           
    diem()
          {
              
    x=0;
             
    y=0;
          };
          
    diem(float a,float b)
          {
               
    x=a;y=b;
          };
          
    void settung(float t);
          
    float gettung();
          
    void sethoanh(float h);
          
    float gethoanh();
          
    void setdiem(diem j);
          
    float KC(diem k);
          
    void show();
    };

    void diem::settung(float t)
    {
        
    x=t;
    };

    float diem::gettung()
    {
        return 
    x;
    };

    void diem::sethoanh(float h)
    {
         
    y=h;
    };

    float diem::gethoanh()
    {
          return 
    y;
    };

    void diem::setdiem(diem j)
    {
        
    x=j.x;
       
    y=j.y;
    };

    float diem::KC(diem k)
    {
        return 
    sqrt((x-k.x)*(x-k.x)+(y-k.y)*(y-k.y));
    };

    void diem::show()
    {
         
    cout<<"("<<x<<" ; "<<y<<")";
    }; 
    Mình muốn dùng quá tải (operator) để quá tải toán tử xuất << . Để có thể xuất thẳng một đối tượng ra mà không cần dùng hàm hiện thị nữa mà ko biết làm thế nào. Mọi người dúp nhá.

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

    ostream& operator<<(ostream& out,diem d)
    {
    out<<"("<<d.gethoanh()<<" ; "<<d.gettung()<<")";
    return out;
    }
    //Chả hiểu sao overload dịch là quá tải nhỉ,đọc chả liên quan gì đến nghĩa của //nó.Mình thấy dịch là nạp chồng nghe còn đỡ hơn.

  3. #3
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Code:
    friend ostream& operator<<(ostream&,diem&); //prototype
    ostream& operator<<(ostream& cout,diem& d) //cai dat
    {
    cout<<"("<<d.gethoanh()<<" ; "<<d.gettung()<<")";
    return cout;
    }

  4. #4
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Trích dẫn Nguyên bản được gửi bởi huynguyen Xem bài viết
    Code:
    friend ostream& operator<<(ostream&,diem&); //prototype
    ostream& operator<<(ostream& cout,diem& d) //cai dat
    {
    cout<<"("<<d.gethoanh()<<" ; "<<d.gettung()<<")";
    return cout;
    }
    Hi cảm ơn các bạn nhé. Mình làm được rồi.

  5. #5
    Ngày gia nhập
    04 2007
    Bài viết
    16

    //prototype bạn phải khai báo trong Class gì đó
    ví dụ ở đây là Class điểm

  6. #6
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Mặc định [C++]Quả tải toán tử xuất << mọi người dúp mình nha.

    PHP Code:
    #include <iostream.h>
    #include <conio.h>
    #include <math.h>
    class diem
    {
          private:
           
    float x;
          
    float y;
          
       public:
           
    diem()
          {
              
    x=0;
             
    y=0;
          };
          
    diem(float a,float b)
          {
               
    x=a;y=b;
          };
          
    void settung(float t);
          
    float gettung();
          
    void sethoanh(float h);
          
    float gethoanh();
          
    void setdiem(diem j);
          
    float KC(diem k);
          
    friend ostreamoperator<<(ostream&,diem&); //prototype
    };
    ostreamoperator<<(ostreamcout,diemd//cai dat
    {
        
    cout<<"("<<d.gethoanh()<<" ; "<<d.gettung()<<")";
        return 
    cout;
    }

    void diem::settung(float t)
    {
        
    x=t;
    };

    float diem::gettung()
    {
        return 
    x;
    };

    void diem::sethoanh(float h)
    {
         
    y=h;
    };

    float diem::gethoanh()
    {
          return 
    y;
    };

    void diem::setdiem(diem j)
    {
        
    x=j.x;
       
    y=j.y;
    };

    float diem::KC(diem k)
    {
        return 
    sqrt((x-k.x)*(x-k.x)+(y-k.y)*(y-k.y));
    }; 
    Đây là code sau khi đã sửa. Sau khi quá tải chúng ta có thể tha hồ cout<< đối tượng mà ko cần hàm hiện thị
    VD
    PHP Code:
    void main()
    {
       
    diem a;
       
    float c,d;
       
    cout<<"\tNhap vao tung do: ";
       
    cin>>c;
       
    a.settung(c);
       
    cout<<"\tNhap vao hoang do: ";
       
    cin>>d;
       
    a.sethoanh(d);
       
    cout<<a;
       
    getch();


  7. #7
    Ngày gia nhập
    04 2007
    Bài viết
    16

    bạn có biết trong khai ostream& operator(ostream&,diem&)
    tại sao ostream lại có dấu &

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

  1. Lập trình C Xuất nhập file trong C kết quả xuất ra không đúng?
    Gửi bởi lamhoang100 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 05-06-2013, 05:38 PM
  2. dúp em bài toán tự động chọn mã khách hàng
    Gửi bởi langthuan trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 10-12-2008, 06:57 PM
  3. các bác ơi dịch dúp em đoạn tiếng anh với ạ
    Gửi bởi langthuan trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 2
    Bài viết cuối: 11-09-2008, 02:58 PM
  4. có thể dúp em làm đề tài về "quản lý xuất bản sách" ko
    Gửi bởi anhtien trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 20-11-2007, 09:43 PM
  5. [ Solved ]Có một bài tập về ngày tháng năm bạn nào dúp mình giải với
    Gửi bởi vtniam trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 03-11-2006, 10:38 AM

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