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

Đề tài: Khó hiểu quá ( copy constructor )

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

    Angry Khó hiểu quá ( copy constructor )

    các Bác cho mình hỏi . Trong C++ .khi tạo class Da Thuc tại sao cần phải khai báo các Contructror DT(), DT(int n1),DT(const DT &d) để làm gì vậy .khó hiểu quá mong các bác giải thích dùm .Cám ơn.
    C++ Code:
    1. class DT
    2.   private: int n ; //bậc
    3.               double *a ;
    4.   public : DT()
    5.                   { this -> n = 0; this -> a =NULL;
    6.                    }
    7.              DT(int n1)
    8.                   {this->n=n1;
    9.                     this->a=new double[n1+1]   ;
    10.                    }
    11.              DT(const DT &d)
    12.         ..............................

    Lưu ý bỏ code vào thẻ code.
    Đã được chỉnh sửa lần cuối bởi rox_rook : 07-04-2008 lúc 07:26 AM.

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

    Trong C++ .khi tạo class Da Thuc tại sao cần phải khai báo các Contructror DT(), DT(int n1),DT(const DT &d) để làm gì vậy
    Overloading constructor để user có thể khởi tạo đối tượng theo nhiều cách vậy thôi, khó hiểu cái hả cậu ?
    Tui tạo đói tượng :
    C++ Code:
    1. DT A;
    2. DT A(10);
    3. DT B;
    4. DT A(B); -->**
    Có sao đâu ?.
    Còn copy constructor là để người ta có thể dùng cái chỗ ** mà tui nêu ở trên.

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

    Đây là một thể hiện của sự nạp chồng hàm đặc trưng cho hướng đối tượng đó thôi . Nếu bạn có nhiều hàm cùng thực hiện một chức năng với các đối số khác nhau như vậy thì bạn có thể làm rất nhiều cái đúng ko nào ?

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

    Đây là 3 kiểu constructor của C++ đó bạn:
    - Constructor không tham số DT(): khởi tạo đối tượng ban đầu với các giá trị "chưa có gì". Có vẻ hơi khó hiểu thì phải !!!Bạn có thể hiểu là khai báo rằng đối tượng đó từ giờ có mặt trên " thế giới " này.
    - Constructor có tham số : khởi tạo đối tượng ban đầu nhưng đã có "tên, tuổi, ..." nghĩa là cho nó một "danh tính" đó!
    - Constructor copy: khởi tạo một đối tượng từ một đặc tính của đối tượng khác. Như "nhân bản vô tính" đó mà!
    Chắc bây giờ bạn hiểu rùi chứ

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

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    Overloading constructor để user có thể khởi tạo đối tượng theo nhiều cách vậy thôi, khó hiểu cái hả cậu ?
    Tui tạo đói tượng :
    C++ Code:
    1. DT A;
    2. DT A(10);
    3. DT B;
    4. DT A(B); -->**
    Có sao đâu ?.
    Còn copy constructor là để người ta có thể dùng cái chỗ ** mà tui nêu ở trên.
    chài cho minh` góp ý tý nhé :
    đoạn mã ** của bạn cũng có thể viết lại như vậy cho đơn giản
    DT A;
    A=B;
    => như vậy copycontrucstor cũng có tác dụng là thưc hiện việc gán nội dung một đối tượng đã có cho một đối tương khác. cái này khác với phép gán thông thường vì nó tạo ra một đối tượng hoàn toàn mới(có một địa chỉ mới.vì nếu bạn không làm như vậy thì sau này khi destructor bạn vô tình xóa cùng một đối tượng đến hai lần.)

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. Xin hỏi về Copy Constructor
    Gửi bởi xxria trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 08-08-2009, 07:58 PM
  4. 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
  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