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

Đề tài: lỗi hàm friend

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

    Mặc định lỗi hàm friend

    các sư huynh sư tỷ fix giùm e cái bài này với nó bảo lỗi này e ko biết sửa huhu
    "expected `,' or `...' before '&' token"
    C++ Code:
    1. /*nhap vao mot ma tran vuong cap n va mot vecto cap n
    2. sau do thuc hien phep nhan  giua ma tran voi vecto*/
    3. #include <iostream>
    4. #include <conio.h>
    5. #include <math.h>
    6. #include <iomanip.h>
    7.  
    8. using namespace std;
    9.  
    10. class VT
    11. {
    12.       private:
    13.               int n;
    14.               double x[20];
    15.       public:
    16.              void Nhapsl();
    17.              friend void In(const VT &x);
    18.              friend VT Tich(const MT &a,const VT &x);
    19. };
    20. class MT
    21. {
    22.       private:
    23.               int n;
    24.               double a[20][20];
    25.       public:
    26.              void Nhapsl();
    27.              friend VT Tich(const MT &a,const VT &x);
    28.              friend void In(const MT &x);
    29. };
    30. void VT::Nhapsl()
    31. {
    32.      cout<<"\nCap vecto: ";
    33.      cin>>this->n;
    34.      for(int i = 1; i<= n; ++i)
    35.      {
    36.              cout<<"\nPhan tu thu "<<i<<":";
    37.              cin>>x[i];
    38.      }
    39. }
    40. void MT::Nhapsl()
    41. {
    42.      cout<<"\nCap ma tran: ";
    43.      cin>>this->n;
    44.      for (int i = 1; i <= n; i++)
    45.          for (int j = 1; j <= n; j++)
    46.          {
    47.              cout<<"\nPhan tu hang thu "<<i<<" cot thu "<<j<<": ";
    48.              cin>>a[i][j];
    49.          }
    50. }
    51. VT Tich(const MT &a,const VT &x)
    52. {
    53.    VT y;
    54.    int n = a.n;
    55.    if (n!=x.n)
    56.       return x;
    57.    y.n = n;
    58.    for (int i = 1; i <= n; ++i)
    59.    {
    60.        y.x[i] = 0;
    61.        for (int j = 1; j<= n; ++j)
    62.            y.x[i] += a.a[i][j]*x.x[j];
    63.    }
    64.    return y;
    65. }
    66. void In(const VT &x)
    67. {
    68.      cout<<"\n";
    69.      for (int i = 1; i <= x.n; ++i)
    70.      {
    71.          cout<<"\n";
    72.          for (int j = 1; j <= x.n; ++j)
    73.              cout<<x.x[j]<<"   ";
    74.      }
    75. }
    76. void In(const MT &a)
    77. {
    78.      cout<<"\n";
    79.      for (int i = 1; i <= a.n; ++i)
    80.      {
    81.          cout<<"\n";
    82.          for (int j = 1; j <= a.n; ++j)
    83.              cout<<a.a[i][j]<<"   ";
    84.      }
    85. }
    86. int main()
    87. {
    88.     MT a;
    89.     VT x, y;
    90.     a.Nhapsl();
    91.     x.Nhapsl();
    92.     y = Tich(a, x);
    93.     cout<<"\nMa tran A: ";
    94.     In(a);
    95.     cout<<"-------------------------------------------";
    96.     cout<<"\nVecto x: ";
    97.     In(x);
    98.     cout<<"\n\n Vecto y = ax: ";
    99.     In(y);
    100.     getch();
    101.     return 0;
    102. }
    Đã được chỉnh sửa lần cuối bởi fushi_nguyen : 25-12-2012 lúc 04:32 PM.
    nếu muốn có ngày mai thì hãy cố gắng từ bjo thay vì ngồi đó than phiền

  2. #2
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Bổ sung thêm "class MT;" trước khai báo class VT.
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

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

    Trích dẫn Nguyên bản được gửi bởi doicanhden Xem bài viết
    Bổ sung thêm "class MT;" trước khai báo class VT.
    cảm ơn doicanhden nha, code chạy được ui, Cho mình hỏi tại ssao phải khai báo prototype trước z, mình kém lắm nên mong a chỉ giùm
    nếu muốn có ngày mai thì hãy cố gắng từ bjo thay vì ngồi đó than phiền

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

    Trích dẫn Nguyên bản được gửi bởi fushi_nguyen Xem bài viết
    cảm ơn doicanhden nha, code chạy được ui, Cho mình hỏi tại ssao phải khai báo prototype trước z, mình kém lắm nên mong a chỉ giùm
    friend VT Tich(const MT &a,const VT &x); không khai báo thì làm sao bạn sử dụng được câu lệnh này bởi bạn đã khai báo MT đâu, giống như là khi viết hàm để an toàn thì nên khai báo prototype đầu tiên ấy mà. giờ bạn thử khai báo một hàm tính tổng gì đó đơn giản gì đó sau hàm main mà chưa khai báo prototype xem trình biên dịch nó báo lỗi gì không?
    C Code:
    1. //vd như kiểu thế này
    2. void main()
    3. {
    4.   tinhtong();
    5. }
    6. int tinhtong()
    7. {
    8.    return 5+9;
    9. }
    //xem có hiện tượng gì nào
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

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

    Trích dẫn Nguyên bản được gửi bởi kimcy1992 Xem bài viết
    C Code:
    1. //vd như kiểu thế này
    2. void main()
    3. {
    4.   tinhtong();
    5. }
    6. int tinhtong()
    7. {
    8.    return 5+9;
    9. }
    //xem có hiện tượng gì nào
    oh!!! hàm tinhtong() đã không được mô tả hay khai báo gì đó giờ cho chắc khi viết nhiều hàm quá thì khai báo prototype hết cho chắc ti cực tí thui.
    @kimcy1992: mình hiểu ui, cảm ơn nha
    nếu muốn có ngày mai thì hãy cố gắng từ bjo thay vì ngồi đó than phiền

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

  1. Bài tập C++ bị lỗi hàm friend trong C++
    Gửi bởi ttkm4u trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 16-04-2012, 01:02 AM
  2. Kỹ thuật C++ lỗi ở hàm friend là hàm thành viên của 1 lớp khác
    Gửi bởi daisatthu04 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 01-04-2012, 11:33 PM
  3. về friend và toán tử >>
    Gửi bởi MQuy 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: 13-03-2009, 01:29 PM
  4. [ Solved ]Lỗi khi sử dụng friend
    Gửi bởi bvKim trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 8
    Bài viết cuối: 19-11-2008, 12:41 PM
  5. [Support]A Friend...
    Gửi bởi embehoclaptrinh trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 1
    Bài viết cuối: 19-04-2007, 11:42 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