Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 14 kết quả

Đề tài: sửa cho mình bài này với

  1. #1
    Ngày gia nhập
    08 2008
    Bài viết
    15

    Wink sửa cho mình bài này với

    mình chạy bằng C4.5 nhưng còn một lỗi mà mình không hiểu .
    mình mới học c++ nên chưa hiểu rõ lắm mong các bác pro giải thích giùm

    C++ Code:
    1. #include<iostream.h>
    2. #include<conio.h>
    3. #include<stdio.h>
    4. class vect
    5.  {
    6.     private:
    7.       int size;
    8.       int *data;
    9.     public:
    10.       vect():size(0),data(NULL){}
    11.       vect(int sz): size(sz){data=new int[size];}
    12.  
    13.       ~vect()
    14.           {
    15.               if(data)
    16.                  delete[]data;
    17.           }
    18.     public:
    19.         int &operator[](int index)
    20.              {
    21.                  return data[index];
    22.              }
    23.         vect operator +(vect &v)
    24.              { int i=0;
    25.                 vect t(v.size);
    26.                   for(;i<4;i++)
    27.                   t.data[i] = data[i] + v.data[i];
    28.                 return t;
    29.              }
    30.       friend ostream& operator<<(ostream& out, vect &v);
    31.     };
    32.      ostream& operator<<(ostream &out, vect &v)
    33.         {
    34.              for(int i=0; i<v.size; i++)
    35.                 out<< v.data[i]<<' ';
    36.                 return (out<< endl);
    37.       }
    38.  
    39.  
    40. void main()
    41.  {
    42.     int A[]={2,6,7,3};
    43.     vect v1(4),v2(4);
    44.     for( int i=0 ; i<4; i++)
    45.       {
    46.           v1[i] = i+1;
    47.           v2[i] =A[i];
    48.       }
    49.     out<< v1<<v2;
    50.     }
    Đã được chỉnh sửa lần cuối bởi rox_rook : 25-12-2008 lúc 12:25 PM.

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    - Lưu ý bỏ code vào thẻ code, compiler error messages đâu ? Hôm nay ChrisMax nên tui nhắc nhớ chứ bình thường tui move lâu rùi đó !
    mình chạy bằng C4.5 nhưng còn một lỗi mà mình không hiểu .
    - Cậu nói kiểu này thì sau khi sữa cậu học được rất ít, cậu càng mô tả rõ ràng chừng nào thì cậu càng nhớ dai sau khi người ta sữa cho cậu !
    - Code cậu thiếu copy-constructor thì làm sao mà trả về temporary object được !

  3. #3
    Ngày gia nhập
    08 2008
    Bài viết
    15

    uh! em tham gia diễn đàn nên chưa rõ lắm
    lần sau hỏi mình sẽ cẩn thận hơn
    thank!
    Đã được chỉnh sửa lần cuối bởi nguyenduyan : 25-12-2008 lúc 05:22 PM. Lý do: sorry

  4. #4
    Ngày gia nhập
    08 2008
    Bài viết
    15

    cu thể lỗi là:functions containing for are not expanded inline
    ở vòng for trong định nghĩa toán tử + của mình

  5. #5
    Ngày gia nhập
    12 2007
    Bài viết
    54

    PHP Code:
    out<< v1<<v2
    lỗi ở đây bạn này , sửa out thành cout
    Note: bạn đặt topic cho rõ đề chứ ko bị move đi đấy , mà sao ko có đề bài vậy bạn , hình như là tính tổng của ma trận và vector à bạn
    Rất mong được mọi người giúp đỡ :

    Kiến thức mình biết chỉ là hạt cát trên sa mạc

  6. #6
    Ngày gia nhập
    08 2008
    Bài viết
    15

    Mặc định sửa cho mình bài này với

    bài này chỉ tính tổng vector thôi
    sao lại dùng out
    mình đã định nghĩa phép toán << để in ra vector rồi mà

  7. #7
    Ngày gia nhập
    12 2007
    Bài viết
    54

    bài này chỉ tính tổng vector thôi
    sao lại dùng out
    mình đã định nghĩa phép toán << để in ra vector rồi mà
    bạn ko đọc dòng tớ giải thích à , ở đây cout mới là đối tượng của lớp ostream chứ ko phải là out .
    Rất mong được mọi người giúp đỡ :

    Kiến thức mình biết chỉ là hạt cát trên sa mạc

  8. #8
    Ngày gia nhập
    08 2008
    Bài viết
    15

    bây giờ ví dụ mình muốn in ra v1+v2 : cout<< v1+v2 thì chưong trình báo lỗi ngay
    bạn xem lại đi

  9. #9
    Ngày gia nhập
    12 2007
    Bài viết
    54

    C++ Code:
    1. /* Viet 1 lop vector */
    2.  
    3. # include<iostream.h>
    4. # include<iomanip.h>
    5. class vector {
    6.      private:
    7.          int sptu;
    8.          float *giatri;
    9.      public:
    10.          vector ();
    11.          ~ vector ();
    12.          vector (const vector &v);
    13.          vector operator+(vector &a);
    14.          vector operator-(vector &a);
    15.          void operator=(vector &a);
    16.          double operator*(vector &a);
    17.          friend istream & operator >> (istream & is,vector &a);
    18.          friend ostream & operator << (ostream & os,vector &a);
    19.  
    20.  
    21. };
    22. // ----------------------------------------
    23. vector ::vector () {
    24.         cout<<"Nhap so phan tu:";
    25.         cin>>sptu;
    26.         giatri=new float [sptu];
    27.         for(int i=0;i<sptu;i++)
    28.              {   cout<<"Nhap A["<<i<<"]:";
    29.                   cin>>giatri[i];
    30.              }
    31. }
    32. // ---------------------------------------------
    33. vector::vector(const vector &v) {
    34.         sptu=v.sptu;
    35.         giatri=new float [sptu];
    36.         for(int i=0;i<sptu;i++)
    37.             giatri[i]=v.giatri[i];
    38. }
    39.  
    40. // -------------------------------------------
    41.  vector::~vector() {
    42.         delete giatri;
    43. }
    44.  
    45. // ------------------------------------
    46. istream & operator >>(istream & is,vector &a) {
    47.  
    48.         is>>a.sptu;
    49.         a.giatri=new float [a.sptu];
    50.         for(int i=0;i<a.sptu;i++)
    51.              {   cout<<"Nhap  A["<<i<<"]:";
    52.                   is>>a.giatri[i];
    53.              }
    54.         return is;
    55. }
    56.  
    57. // ----------------------------------------
    58.  void vector::operator=(vector &a) {
    59.         this->sptu=a.sptu;
    60.         for (int i=0;i<a.sptu;i++)
    61.             this->giatri[i]=a.giatri[i];
    62. }
    63. // ---------------------------------------
    64. vector vector::operator+(vector &a) {
    65.         vector b(a);
    66.         if(this ->sptu!=a.sptu)
    67.              cout<<"chuong trinh ko thuc hien duoc: " ;
    68.         else
    69.              for(int i=0;i<a.sptu;i++)
    70.                  b.giatri[i]=this->giatri[i]+a.giatri[i];
    71.         return b;
    72. }
    73.  
    74. // ---------------------------------------
    75. vector vector::operator-(vector &a) {
    76.           vector b(a);
    77.           if(this->sptu!=a.sptu)
    78.              cout<<"chuong trinh ko thuc hien duoc :" ;
    79.          else
    80.              for(int i=0;i<a.sptu;i++)
    81.                  b.giatri[i]=this->giatri[i]-a.giatri[i];
    82.             return b;
    83. }
    84.  
    85. // ----------------------------------------------
    86. double vector::operator*(vector &a) {
    87.          if(this->sptu!=a.sptu)
    88.              cout<<"chuong trinh ko thuc hien duoc ";
    89.          else
    90.             {  double s=0;
    91.                 for(int i=0;i<a.sptu;i++)
    92.                     s+=this->giatri[i]*a.giatri[i];
    93.                 return s;
    94.             }
    95. }
    96.  
    97. // -----------------------------------------------
    98.  ostream & operator << (ostream & os,vector &a) {
    99.           os<<"(";
    100.           for(int i=0;i<a.sptu;i++)
    101.             {    os<<a.giatri[i];
    102.                  if(i<a.sptu-1)
    103.                  os<<",";
    104.             }
    105.           os<<")";
    106.           return os;
    107. }
    108.  
    109. // ---------------------------------------------------
    110. int main()
    111. {
    112.       vector a;
    113.       cout<<"vector a:"<<endl<<a<<endl;
    114.       vector b;
    115.       cout<<"vector b:" <<endl<<b<<endl;
    116.       vector c=a+b;  cout<<"Tong 2 vector a va b:"<<c<<endl;
    117.       c=a-b;         cout<<"Hieu 2 vector a va b:"<<c<<endl;
    118.                           cout<<"Tich 2 vector a va b:"<<a*b<<endl;
    119.       return 0;
    120.  
    121. }
    Bạn xem code mình viết , cout<<v1+v2 cũng được nếu bạn định nghĩa operator rồi
    Rất mong được mọi người giúp đỡ :

    Kiến thức mình biết chỉ là hạt cát trên sa mạc

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

    thank's nhé
    mình hiểu rồi
    nhưng bạn có thể giải thích rõ hơn ý nghĩa của lệnh
    ostream &operator<<(ostream &os, vect &v)

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