Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
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á.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  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ông cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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