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

Đề tài: Class template trong C++, xem giúp em xem lỗi gì?

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

    Unhappy Class template trong C++, xem giúp em xem lỗi gì?

    C++ Code:
    1. template<class T>
    2. class Mang
    3. {
    4.  
    5. private:
    6.     int n;
    7.     int *m;
    8. public:
    9.  
    10.  
    11.     void nhapMang()
    12. {
    13.     cout<<"Nhap so phan tu cho mang: "<<'\n';
    14.     cin>>n;
    15.     m=new T(n);
    16.     for(int i=0;i<n;i++)
    17.     {
    18.         cout<<"Nhap phan thu so "<<i+1<<'\n';
    19.         cin>>m[i];
    20.     }
    21. }
    22.  
    23.  
    24.  
    25.     void xuatMang()
    26. {
    27.     cout<<"Mang la: "<<'\n';
    28.     for (int i=0;i<n;i++)
    29.     {
    30.         cout<<m[i];
    31.     }
    32. }
    33.  
    34.  
    35.  
    36.     Mang operator +(const Mang & p1)
    37. {
    38.     Mang p2;
    39.     p2.m=new T(p1.n+n);
    40.     for(int i=0;i<n;i++)
    41.         p2.m[i]=m[i];
    42.     for(int t=0;t<p1.n;t++)
    43.         p2.m[i+t]=p1.m[t];
    44.     return p2;
    45. }
    46.  
    47.  
    48.  
    49.     Mang operator *(const Mang & p1)
    50. {
    51.     Mang p2;
    52.     for(int i=0;i<n;i++)
    53.     {
    54.         for(int t=0;t<p1.n;t++)
    55.             if(m[i]==p1.m[t])
    56.             {
    57.                 int p=0;
    58.                 p2.m[p]=p1.m[t];
    59.                 p++;
    60.             }
    61.     }
    62.     return p2;
    63. }
    64.  
    65.  
    66.  
    67.     Mang operator /(const Mang & p1)
    68. {
    69.     Mang p2;
    70.     for(int i=0;i<n;i++)
    71.     {
    72.         for(int t=0;t<p1.n;t++)
    73.             if(m[i]!=p1.m[t])
    74.             {
    75.                 int p=0;
    76.                 p2.m[p]=p1.m[t];
    77.                 p++;
    78.             }
    79.     }
    80.     return p2;
    81. }
    82.  
    83.    
    84.     Mang()
    85. {
    86.     Mang p1;
    87.     p1.m= new T(n);
    88.     for(int i=0;i<n;i++)
    89.     p1.m[i]=m[i];
    90. }
    91.  
    92.  
    93.  
    94.     ~Mang()
    95. {
    96.     n=0;
    97.     delete m;
    98. }
    99.  
    100.  
    101.  
    102.  
    103. friend istream & operator >> (istream & is, Mang &M1)
    104.     {            
    105.         cout << "Nhap so luong phan tu trong mang: ";
    106.         is >> M1.n;
    107.        
    108.         M1.m = new T[M1.n];
    109.        
    110.         for (int i=0; i<M1.n; i++)
    111.         {
    112.             cout << "Nhap phan tu thu "<< i + 1 << " : \n" ;
    113.             is >> M1.m[i];
    114.         }
    115.         return is;
    116.     }
    117.  
    118.  
    119.  
    120.  
    121. friend ostream & operator <<(ostream &os, Mang M1)
    122.     {
    123.         os << "Cac phan tu la: " << endl;
    124.         for (int i=0; i < M1.n; i++)
    125.             cout << M1.m[i] << endl;
    126.         return os;
    127.     }
    128.  
    129.  
    130. };


    Nó cứ báo lỗi ở 2 hàm << va >>
    Dạng như see reference to class template instantiation 'Mang<T>' being compiled
    missing ';' before '&'
    'istream' : 'friend' not permitted on data declarations
    binary 'operator >>' has too few parameters
    '<<' : missing storage-class or type specifiers


    Em mới học ko biết tại sao sai

  2. #2
    Ngày gia nhập
    10 2008
    Bài viết
    178

    bác chưa include thư viên iostream;
    bác viết thêm vào đoạn này
    #include "iostream"
    using namespace std;
    nhớ thêm cái hàm main nữa
    Đã được chỉnh sửa lần cuối bởi rua_con : 08-04-2009 lúc 10:25 PM.

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. 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
  5. Bị sai khi sử dụng kiểu Float trong Template class
    Gửi bởi cucxabong trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 14-03-2009, 08:33 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