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

Đề tài: Xin hỏi về Copy Constructor

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

    Mặc định Xin hỏi về Copy Constructor

    class Test
    {
    private :
    int *p;
    //...
    };
    Test a;
    Test b = a; // gọi copy constructor
    Test c;
    c=a; // gán đối tượng.
    2 kiểu này khác gì nhau? ( dữ liệu là con trỏ ). Và copy constructor có tác dụng gì?

  2. #2
    Ngày gia nhập
    04 2009
    Nơi ở
    một căn hộ nhỏ trên trái đất
    Bài viết
    372

    Trong trường hợp của bạn sẽ là copy nông (shallow copy), tức là chỉ copy giá trị con trỏ, không phải là dữ liệu thực tế được trỏ đến.

  3. #3
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    @xxria: Hỏi một vấn đề thì post một bài thôi, cho thao luận được tập trung và đỡ rác diễn đàn.
    class Test
    {
    private :
    int *p;
    //...
    };
    Test a;
    Test b = a; // gọi copy constructor
    Test c;
    c=a; // gán đối tượng.
    2 kiểu này khác gì nhau? ( dữ liệu là con trỏ ). Và copy constructor có tác dụng gì?
    diễn giải dễ hiểu hơn một chút c = a thì c.p = a.p; gán 2 con trỏ sẽ làm nó trỏ cùng vào một vùng nhớ chứ không copy dữ liệu.

    Cải 2
    Test b = a; // gọi copy constructor
    Test c;
    c=a; // gán đối tượng.

    là như nhau đều cần viết copy constructor không thì sẽ có nhiều vấn đề xảy ra trong chương trình.

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

    Trích dẫn Nguyên bản được gửi bởi QuangHoang Xem bài viết
    @xxria: Hỏi một vấn đề thì post một bài thôi, cho thao luận được tập trung và đỡ rác diễn đàn.

    diễn giải dễ hiểu hơn một chút c = a thì c.p = a.p; gán 2 con trỏ sẽ làm nó trỏ cùng vào một vùng nhớ chứ không copy dữ liệu.

    Cải 2
    Test b = a; // gọi copy constructor
    Test c;
    c=a; // gán đối tượng.

    là như nhau đều cần viết copy constructor không thì sẽ có nhiều vấn đề xảy ra trong chương trình.
    nếu rõ vấn đề đi bạn.
    Ý nghĩa của copy constructor là gì vậy?

  5. #5
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    copy constructor là phương thức khởi tạo một đối tượng bản sao từ một đối tượng có sẵn. Bạn không nên viết Test b = a nếu như chưa viết copy constructor. Bạn cũng không nên viết c = a nếu như chưa viết overload toán tử =

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

  1. Tìm hiểu khái niệm về hàm Copy Constructor
    Gửi bởi vuongngocnam trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 26-11-2014, 02:10 PM
  2. Lỗi no copy constructor available or copy constructor is declared 'explicit'
    Gửi bởi tun_tun trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 09-09-2012, 06:02 PM
  3. Hỏi về copy constructor?
    Gửi bởi xxria trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 08-08-2009, 05:51 PM
  4. Khó hiểu quá ( copy constructor )
    Gửi bởi phanphuocml trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 22-04-2008, 06:30 PM
  5. [ 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

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