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

Đề tài: Bị sai khi sử dụng kiểu Float trong Template class

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    16

    Mặc định Bị sai khi sử dụng kiểu Float trong Template class

    Đề yêu cầu thế này
    - Tìm phần tử dương lớn nhất trong mảng kiểu T (int, float, PhanSo, …).
    Kiểu int với Float em làm dc nhưng mà PhanSo em ko làm ra, mọi người giúp em cái. Sẵn mọi người giúp em viết thân hàm cho toán tử ép kiểu (float) luôn. Cám ơn mọi người !!! (Em mới học nên cái gì cũng ko biết mong mọi người giúp đỡ)
    Đã được chỉnh sửa lần cuối bởi cucxabong : 14-03-2009 lúc 06:20 AM.

  2. #2
    Ngày gia nhập
    01 2009
    Bài viết
    89

    Trích dẫn Nguyên bản được gửi bởi cucxabong Xem bài viết
    Đề yêu cầu thế này


    Kiểu int với Float em làm dc nhưng mà PhanSo em ko làm ra, mọi người giúp em cái. Sẵn mọi người giúp em viết thân hàm cho toán tử ép kiểu (float) luôn. Cám ơn mọi người !!! (Em mới học nên cái gì cũng ko biết mong mọi người giúp đỡ)
    Bạn chỉ cần overload hai toán tử ">" và "<" rồi thao trong lớp phân số rồi thao tác tương tự như kiểu int hay float.

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    16

    Trích dẫn Nguyên bản được gửi bởi ngocbig™ Xem bài viết
    Bạn chỉ cần overload hai toán tử ">" và "<" rồi thao trong lớp phân số rồi thao tác tương tự như kiểu int hay float.
    bạn nói rõ hơn dc ko, mình mới học nên mấy thuật ngữ chả hiểu gì

  4. #4
    Ngày gia nhập
    01 2009
    Bài viết
    89

    Minh code qua loa cho bạn một đoạn nhỏ (có gì sai feedback lại cho mình nhé)

    C++ Code:
    1. #include <iostream>
    2.  
    3. using namespace std;
    4. //---------------------------------------------------------------------------
    5. template<typename T>
    6. T MyMax(const T* arr, int size)
    7. {
    8.     T max = arr[0];
    9.    for(int i=1;i<size;i++)
    10.    {
    11.         if(max<arr[i])
    12.             max=arr[i];
    13.    }
    14.    return max;
    15. }
    16. //-----------------
    17. class PhanSo
    18. {
    19. private:
    20.     int m_tu,m_mau;
    21. public:
    22.     PhanSo():m_tu(0),m_mau(1){;}
    23.     PhanSo(int tu, int mau):m_tu(tu),m_mau(mau)
    24.     {
    25.    
    26.     }
    27.     bool operator<(const PhanSo& rhs)
    28.     {
    29.         double rhsVal=(double)rhs.m_tu/rhs.m_mau;
    30.         double thisVal = (double)m_tu/m_mau;
    31.         return thisVal<rhsVal?true:false;
    32.     }
    33.     bool operator>(const PhanSo& rhs)
    34.     {
    35.         return *this<rhs?false:true;
    36.     }
    37.     friend ostream& operator<<(ostream& os,const PhanSo& ps)
    38.     {
    39.         os<<ps.m_tu<<"/"<<ps.m_mau;
    40.         return os;
    41.     }
    42. };
    43. //-----------------
    44. int main()
    45. {
    46.     int int_arr[]={3,-2,4,1};
    47.     float float_arr[]={1.0,8.2,-5.4};
    48.     PhanSo ps_arr[3];
    49.     ps_arr[0]=PhanSo(1,2);
    50.     ps_arr[1]=PhanSo(3,4);
    51.     ps_arr[2]=PhanSo(7,8);
    52.  
    53.     cout<<"so int lon nhat trong int_arr la:"<<MyMax(int_arr,4)<<endl; 
    54.     cout<<"so float lon nhat trong float_arr la:"<<MyMax(float_arr,3)<<endl;
    55.     cout<<"Phan so lon nhat trong ps_arr la:"<<MyMax(ps_arr,3)<<endl;
    56.     system("pause");
    57.     return 0;
    58. }
    59. //---------------------------------------------------------------------------

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

    Trích dẫn Nguyên bản được gửi bởi ngocbig™ Xem bài viết
    Minh code qua loa cho bạn một đoạn nhỏ (có gì sai feedback lại cho mình nhé)

    C++ Code:
    1. #include <iostream>
    2.  
    3. using namespace std;
    4. //---------------------------------------------------------------------------
    5. template<typename T>
    6. T MyMax(const T* arr, int size)
    7. {
    8.     T max = arr[0];
    9.    for(int i=1;i<size;i++)
    10.    {
    11.         if(max<arr[i])
    12.             max=arr[i];
    13.    }
    14.    return max;
    15. }
    16. //-----------------
    17. class PhanSo
    18. {
    19. private:
    20.     int m_tu,m_mau;
    21. public:
    22.     PhanSo():m_tu(0),m_mau(1){;}
    23.     PhanSo(int tu, int mau):m_tu(tu),m_mau(mau)
    24.     {
    25.    
    26.     }
    27.     bool operator<(const PhanSo& rhs)
    28.     {
    29.         double rhsVal=(double)rhs.m_tu/rhs.m_mau;
    30.         double thisVal = (double)m_tu/m_mau;
    31.         return thisVal<rhsVal?true:false;
    32.     }
    33.     bool operator>(const PhanSo& rhs)
    34.     {
    35.         return *this<rhs?false:true;
    36.     }
    37.     friend ostream& operator<<(ostream& os,const PhanSo& ps)
    38.     {
    39.         os<<ps.m_tu<<"/"<<ps.m_mau;
    40.         return os;
    41.     }
    42. };
    43. //-----------------
    44. int main()
    45. {
    46.     int int_arr[]={3,-2,4,1};
    47.     float float_arr[]={1.0,8.2,-5.4};
    48.     PhanSo ps_arr[3];
    49.     ps_arr[0]=PhanSo(1,2);
    50.     ps_arr[1]=PhanSo(3,4);
    51.     ps_arr[2]=PhanSo(7,8);
    52.  
    53.     cout<<"so int lon nhat trong int_arr la:"<<MyMax(int_arr,4)<<endl; 
    54.     cout<<"so float lon nhat trong float_arr la:"<<MyMax(float_arr,3)<<endl;
    55.     cout<<"Phan so lon nhat trong ps_arr la:"<<MyMax(ps_arr,3)<<endl;
    56.     system("pause");
    57.     return 0;
    58. }
    59. //---------------------------------------------------------------------------

    Cám ơn bạn nhiều.

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

  1. Mã nguồn C Lỗi Thư viện template không sử dụng được trong class khác
    Gửi bởi cuongquoc115 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 30-08-2013, 10:16 PM
  2. Mã nguồn C Lỗi Lỗi see reference to class template instantiation 'std::list<_Ty>' being khi sử dụng Iterator cho class tự xây dựng
    Gửi bởi Mr_Chan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 10-07-2013, 01:58 AM
  3. Học xong về class và template trong C++, học j tiếp theo?! @@
    Gửi bởi Fredy trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 16-07-2011, 08:38 AM
  4. Class template trong C++, xem giúp em xem lỗi gì?
    Gửi bởi amazakikudo 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: 08-04-2009, 10:21 PM
  5. Lập trình hướng đối tượng | Cài đặt class template trong C++?
    Gửi bởi Quách Phẩm Siêu 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: 08-04-2009, 06:37 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