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

Đề tài: [ Solved ]Lỗi hàm tạo bản sao - copy constructructor

  1. #1
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    Mặc định [ Solved ]Lỗi hàm tạo bản sao - copy constructructor

    Xem qua giúp mình hàm tạo bản sao viết thế này thì có lỗi không
    mà trong hàm main khi mình khai báo như thế này đều treo màn hình
    C++ Code:
    1. Expression exp; // có 1 lớp là lớp expression
    2. Expression exp2(exp);
    C++ Code:
    1. Expression::Expression(const Expression &anExp)
    2. {
    3. //  cout<<"Vao ham"<<endl;
    4.     if(anExp.head==NULL)
    5.         head = NULL;
    6.     else
    7.     {
    8.         head = new Node;
    9.  
    10.         assert(head!=NULL);// Check allocation
    11.  
    12.         head->type = anExp.head->type; //type kiểu int
    13.         head->data = anExp.head->data; //data là kiểu void *
    14.         Node *newPtr = head;
    15.         for(Node *origPtr = anExp.head->next;origPtr!=NULL;origPtr = origPtr->next)
    16.         {
    17.             newPtr->next = new Node;
    18.  
    19.             assert(newPtr ->next!=NULL);
    20.  
    21.             newPtr = newPtr->next;
    22.             newPtr->data= origPtr->data;
    23.             newPtr->type = origPtr->type;                                                
    24.         }
    25.         newPtr->next=NULL;
    26.     }
    27. }
    xem code trích ngang thì hơi khó hiểu.Đây project của mình, sử dụng visual studio 6.0
    Attached Files Attached Files
    Đã được chỉnh sửa lần cuối bởi thienthan34 : 18-11-2008 lúc 09:27 AM. Lý do: ack ack
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

  2. #2
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    Have someone help me ???
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

  3. #3
    Ngày gia nhập
    11 2008
    Nơi ở
    Neverland
    Bài viết
    48

    Project của bạn đâu có lỗi gì mình thử chạy vẫn ra kết quả mà :
    C++ Code:
    1. Expression exp;
    2. exp.insertAValue(1,1);
    3. exp.insertAValue(1,4);
    4. exp.insertAValue(1,5);
    5. exp.insertAValue(1,6);
    6. exp.insertAValue(1,7);
    7. exp.display();
    8. Expression exp2(exp);
    9. exp2.display();
    Hai danh sách cho ra kết quả giống nhau copy constructor chạy ngon không có lỗi . Mình không thấy nó treo màn hình gì cả .
    I'm superman

  4. #4
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Lỗi là lỗi gì bạn phải nói ra mọi người mới xem được chứ. Nếu không nói ra thì pó tay.
    - Compiler là gì?
    - Nếu lỗi logic thì bộ test của nó, Mô tả lỗi đó ra.
    Bạn tham gia diễn đàn lâu rùi mà

  5. #5
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Từ từ, bình tĩnh ! Lỗi chỗ này nè, nó treo khi kết thúc hàm main và gọi hàm hủy. Hàm này chạy ko dừng.

    C++ Code:
    1. Expression::~Expression()
    2. {
    3.     while(!isEmptyExp())
    4.     {
    5.         remove(1);
    6.     }
    7. }
    Sửa hàm này lại là sẽ hết treo ngay :

    C++ Code:
    1. bool Expression::isEmptyExp()const
    2. {
    3.     return(size <=0 );
    4. }
    5. i
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 18-11-2008 lúc 09:34 AM.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  6. #6
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    Mặc định [ Solved ]Lỗi hàm tạo bản sao - copy constructructor

    @zkday2686: quên mất ko ghi cái compile,lần sau sẽ thêm chụp màn hình. .
    @meoconlongvang: hóa ra là lỗi ở hàm hủy này ah.ack ack.
    fix mãi mà ko nghĩ ra là lỗi ở đây.
    Cảm ơn mọi người . Đang ở học trường, tẹo nữa về test lại
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

  7. #7
    Ngày gia nhập
    11 2008
    Nơi ở
    Neverland
    Bài viết
    48

    Mèo giỏi quá coi cái là nhận ra lỗi . Tại mình chạy Console trong Win nên dùng chuột tắt chương trình cái bụp nên không thấy lỗi . Nhờ mèo mình phát hiện ra cái copy constructor của thienthan có lỗi là lúc sao chép không sao luôn cái size nên size luôn bằng 0 ????
    C++ Code:
    1. size=anExp.getLength();
    Đã được chỉnh sửa lần cuối bởi trung_dk070384 : 18-11-2008 lúc 09:51 AM.
    I'm superman

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

    đúng rồi mình cũng vừa tải về xem thử thì thấy cái size chưa được khởi tạo, thêm chỗ đó vào thì hết
    cậu trình bày khá rõ ràng nên phát hiện ra lỗi cũng dễ dàng hơn đấy
    code ra gió bão

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

  1. thắc mắc về copy file và kiểm tra tiến trình copy
    Gửi bởi RoboWonder trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 13
    Bài viết cuối: 27-03-2016, 07:15 PM
  2. [Hỏi] Copy thiếu khi copy nhiều file
    Gửi bởi toi_loi_acon trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 10-07-2012, 11:02 AM
  3. Firefox Lỗi: Phải nhấn Ctrl+C hoặc Copy 2 lần mới copy được văn bản.
    Gửi bởi Kevin Hoang trong diễn đàn Thắc mắc chung
    Trả lời: 3
    Bài viết cuối: 17-01-2011, 11:17 PM
  4. [ Solved ]Hỏi 1 tí về copy constructor
    Gửi bởi ktwiz trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 21-03-2008, 01:26 PM
  5. [Solved]SQL 2000: Cách restore backup khi copy file backup sang máy khác
    Gửi bởi nampt trong diễn đàn Thắc mắc đại cương Database & Reporting
    Trả lời: 9
    Bài viết cuối: 11-10-2007, 11:23 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