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

Đề tài: Mảng động

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

    Mặc định Mảng động

    C++ Code:
    1. class Carry{
    2. public:
    3.     Carry() : buffer(0), bufferSize(0), realSize {}
    4.     ~Carry() { delete[] buffer; }
    5.    
    6.     double GetAt( int index ) const;
    7.     double operator[] ( int index) const {return GetAt( index );}
    8.     double& operator[] (int index );
    9.    
    10.     void Add( double element );
    11.    
    12. private:
    13.     double* buffer;
    14.     int bufferSize;
    15.     int realSize;
    16.    
    17.     void grow;
    18. };
    19.  
    20. double Carry::GetAt( int index )
    21. {
    22.     assert( index >= 0 && index < realSize && buffer != 0);
    23.         return buffer[index];
    24. }
    25.  
    26. void Carry::grow()
    27. {
    28.     int newBufferSize = max( bufferSize * 2, InitialSize );
    29.     double* newBuffer = new double[newBufferSize];
    30.     for( int i = 0; i < realSize; ++i)
    31.         newBuffer[i] = buffer[i];
    32.     delete[] buffer;
    33.    
    34.     bufferSize = newBufferSize;
    35. }
    36.  
    37. void Carry::Add( double element)
    38. {
    39.     if( realSize == bufferSize )
    40.         grow( arr );
    41.     assert( realSize < bufferSize && buffer != 0 );
    42.     buffer[realSize++] == element;
    43. }
    Đã được chỉnh sửa lần cuối bởi MHoang : 30-11-2016 lúc 09:39 AM. Lý do: Đưa vào khung mã

  2. #2
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    902

    Có lẽ bạn phải thêm vào tại dòng 33: buffer = newBuffer;

    Phương thức hủy phải kiểm tra nếu không NULL mới delete.
    Đã được chỉnh sửa lần cuối bởi MHoang : 30-11-2016 lúc 09:51 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