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

Đề tài: Code lớp phân số báo lỗi overload "PhanSo" is ambiguous. Nhờ các bạn cho ý kiến fix lỗi

  1. #1
    Ngày gia nhập
    11 2010
    Bài viết
    31

    Mặc định Code lớp phân số báo lỗi overload "PhanSo" is ambiguous. Nhờ các bạn cho ý kiến fix lỗi

    vọc hoài cũng không sửa được, nhờ các bác giúp đỡ, thanks.
    Đề bài
    Xây dựng lớp phân số (tuso,mauso) để hàm main sau thực thi được:
    int main(..)
    {
    Phanso a,b(7,3),c(b),d;
    a.input(); // nhập 1 phân số
    d=a.Cong(b); // cộng 2 phân số
    d.output(); // xuất 1 phân số
    d=a.Tru(b); // trừ 2 phân số
    d.output();
    d=a.Nhan(b); // nhân 2 phân số
    d.output();
    d=a.Chia(b); // chia 2 phân số
    d.rutgon(); // rút gọn phân số
    d.output();

    đây là code của mình,các bạn cho ý kiến về các lỗi trong code giúp nhé.thanks

    C++ Code:
    1. #include <iostream>
    2. #include<conio.h>
    3. #include <cmath>
    4. using namespace std;
    5.  
    6.  
    7. class PhanSo
    8. {
    9.     private:
    10.         int tu,mau;
    11.        
    12.     public:
    13.         // contrustor
    14.         PhanSo();
    15.         PhanSo(int x=3 ,int y=4);
    16.  
    17.         PhanSo Archive();//rut gon ps
    18.  
    19.         void Input()
    20.         {
    21.             cout<<"enter tu : ";
    22.             cin>>tu;
    23.             do
    24.             {
    25.                 cout<<"enter mau : ";
    26.                 cin>>mau;
    27.             }while (mau==0);
    28.         }
    29.         void Output()
    30.         {
    31.             cout<<"PhanSo ";
    32.             cout<<tu<<"/"<<mau;
    33.         }
    34.        
    35.         PhanSo Add(const PhanSo &a);
    36.         PhanSo Sub(const PhanSo &a);
    37.         PhanSo Multi(const PhanSo &a);
    38.         PhanSo Devi(const PhanSo &a);
    39. };
    40.  
    41. PhanSo::PhanSo()
    42. {
    43.     tu=mau=123;
    44. }
    45.  
    46.  
    47. PhanSo::PhanSo(int x ,int y)
    48. {
    49.     tu=x;
    50.     mau=y;
    51. }
    52.        
    53.        
    54. int USCLN (int n,int m)
    55. {
    56.   while (n != 0 && m != 0)
    57.       if (n>m)
    58.           n -= m;
    59.       else
    60.            m -= n;
    61.            
    62.     if (n == 0)
    63.         return m;
    64.    else
    65.         return n;
    66. }
    67.  
    68. PhanSo PhanSo::Archive()
    69. {
    70.     PhanSo temp;
    71.     temp.tu=tu/USCLN(tu,mau);
    72.     temp.mau=mau/USCLN(tu,mau);
    73.     return temp;
    74. }
    75.  
    76.  
    77. PhanSo PhanSo::Add(const PhanSo &a)
    78. {
    79.     PhanSo temp(2,4);
    80.     temp.tu=(tu*a.mau+mau*a.tu);
    81.     temp.mau=(mau*a.mau);
    82.     return temp.Archive();
    83.    
    84. }
    85.  
    86.  
    87. PhanSo PhanSo::Sub(const PhanSo &a)
    88. {
    89.     PhanSo temp(2,4);
    90.     temp.tu=(tu*a.mau-mau*a.tu);
    91.     temp.mau=(mau*a.mau);
    92.     return temp.Archive();
    93. }
    94.  
    95. PhanSo PhanSo::Multi(const PhanSo &a)
    96. {
    97.     PhanSo temp(2,4);
    98.     temp.tu=tu*a.tu;
    99.     temp.mau=mau*a.mau;
    100.     return temp.Archive();
    101. }
    102.  
    103.  
    104. PhanSo PhanSo::Devi(const PhanSo &a)
    105. {
    106.     PhanSo temp(2,4);
    107.     temp.tu=tu*a.mau;
    108.     temp.mau=mau*a.tu;
    109.     return temp.Archive();
    110. }
    111.  
    112.  
    113.  
    114. int main()
    115. {
    116.     PhanSo b,kq;
    117.     PhanSo c(7,3);
    118.     PhanSo d(2,7);
    119.     b.Input();
    120.     kq=b.Add(c);
    121.     kq.Output();
    122.     kq=b.Sub(c);
    123.     kq.Output();
    124.     kq=d.Multi(b);
    125.     kq.Output();
    126.     kq=c.Devi(d);
    127.     kq.Output();
    128. }
    129. đây là lỗi
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Untitled.png
Lần xem:	8
Size:		17.9 KB
ID:		7990
    Đã được chỉnh sửa lần cuối bởi blackmoonT92 : 14-10-2011 lúc 10:08 PM.

  2. #2
    Ngày gia nhập
    08 2009
    Nơi ở
    C:\Documents and Settings\ME\My Documents\Visual Studio 2010
    Bài viết
    516

    Bạn khai báo overload cho hàm khởi tạo phân số:
    (1) PhanSo();
    (2) PhanSo(int x=3 ,int y=4);
    Khi bạn khởi tạo ở dạng:
    PhanSo a = PhanSo();
    thì sẽ mập mờ giữa 2 phương án (1) là PhanSo() hay phương án (2) PhanSo() với x = 3, y = 4;
    Bạn có thể bỏ giá trị mặc định của tham số trong (2) đi.

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

    thanks iamonlining,
    mình đã bỏ giá trị mặc định đi rồi, nhưng lại có vấn đề khác.
    Here
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		sda.png
Lần xem:	7
Size:		32.3 KB
ID:		7993

    sửa lỗi undefined reference sao vậy các bạn

  4. #4
    Ngày gia nhập
    11 2010
    Bài viết
    31

    nó bị sai cái UsCLN, mình sửa chỗ đó lại
    Code:
    int UCLN(int a,int b)
        {
            return (b==0)?a:UCLN(b, a%b);
        }

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

  1. Graphic "minimize" và "maximize" ribbon control của Dotnetbar bằng code?
    Gửi bởi thanphong1989 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 12-04-2012, 10:31 PM
  2. Lỗi "ambiguous call to overload function" khi gọi hàm pow(), giúp khắc phục?
    Gửi bởi bao_lua_bk trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 20-03-2011, 11:55 PM
  3. "tìm kiếm nhị phân". Xin giúp đỡ code?
    Gửi bởi ngoc_le_iu_iu trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 20-05-2010, 05:54 PM
  4. overload toán tử ">>" trong class String?
    Gửi bởi zerothienbao trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 15-12-2009, 10:18 AM
  5. Source code của sách "Beginning C# Game Programming", giúp mình tìm kiếm
    Gửi bởi TuanAnh207 trong diễn đàn Công cụ, ebooks C#, ASP.NET, và Windows Mobile
    Trả lời: 1
    Bài viết cuối: 28-03-2009, 11:34 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