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ố 11 kết quả

Đề tài: [C++] Cách sử dụng Constructor va Destructor trong C++

  1. #1
    No Avatar
    nguyenvuthang Khách

    Mặc định [C++] Cách sử dụng Constructor va Destructor trong C++

    Mình đang học về lập trình hương đối tượng nhưng lại gặp khó khăn với Constructor và Destructor , mình không hiểu rõ mục đích và cách sử dụng nó!Và tại sao phải sử dụng vì nó rất giống một hàm bình thường(ngoại trừ trùng tên với class) mong các bạn hiểu rõ giúp mình một tay nhé! cho mình một vài ví dụ nhé!

  2. #2
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Contructor được gọi mỗi khi đối tượng được tạo do đó có thể khởi tạo các biến thành viên ở đây, thứ nhất làm ngắn gọn khai báo, thứ 2 là nhiều khi ta cần biết khi nào có một đối tượng mới được tạo ra để làm vào việc khác.
    Tương tự với Destructor (nhưng ngược lại :-/)
    Tóm lại là phải có sách đọc thì mới hiểu được nghiêm chỉnh

  3. #3
    No Avatar
    nguyenvuthang Khách

    Mặc định Cơ bản constructtor

    Cám ơn bạn!mình hiểu định nghĩa constructor nhưng vấn đề ở đây là tại sao mình phải sử dụng nó để tạo giá trị khởi đầu cho biến! Ở đây ta có thể dùng hàm thông thương để làm điều này!Bạn có sách nào chi tiết cho mình với! Mình có đọc nhưng nói sơ bộ quá!cám ơn bạn!

  4. #4
    No Avatar
    noname.cpp Khách

    Có nhiều lý do để giải thích cho sự cần thiết phải có một hàm constructor.Đúng là ta hoàn toàn có thế tạo một hàm bất kì để khởi tạo cho đối tượng nhưng có một số bất tiện.Ví dụ khi ta muốn khai báo một mảng các
    đối tượng :

    Point points[10];

    Nếu dùng một hàm khác để khởi tạo đối tượng ví dụ như hàm Init ta phải :
    for(i = 0; i < 10; i++)
    points[i].Init();

    Điều này không cần thiết vì constructor không đối số được gọi tự động vì thế chỉ cần định nghĩa constructor này theo ý muốn.

    Và hàm constructor rất mềm dẻo ví dụ như ta có thể định nghĩa hàm khởi tạo sao chép để quy định cách thức khởi tạo một đối tượng mới dựa trên một đối tượng khác.
    Mặt khác đối với các lớp thừa kế ,trình tự khởi tạo cũng rất quan trọng nhưng các constructor đã có những quy ước khá chặt chẽ về thứ tự gọi, về việc gọi các constructor của lớp cha từ lớp con...Vì thế rất mềm dẻo và thuận lợi cho việc lập trình.

  5. #5
    Ngày gia nhập
    03 2007
    Nơi ở
    Nhà hát của những giấc mơ
    Bài viết
    33

    Hix , các bác giải thích cách dùng nó đi

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Mặc định [C++] Cách sử dụng Constructor va Destructor trong C++

    Hix , các bác giải thích cách dùng nó đi
    Có 1 câu muôn đời em vẫn nhớ là xem sách để biết thêm chi tiết . Rồi hỏi tiếp .

  7. #7
    Ngày gia nhập
    03 2007
    Nơi ở
    Nhà hát của những giấc mơ
    Bài viết
    33

    Thank bác kidkid , tối nay ngồi đọc , mai sẽ hỏi bác

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

    2 cái đó mỗi lần cần sử dụng đối tượng của class khai báo là nó tự chay contructor,kết thúc hàm main là tự chạy destructor chứ đâu phải gọi hàm như mấy hàm bình thường đâu. Tiện cái chỗ đó,khỏi gọi cũng tự chạy.Theo tui là thế.
    Đã được chỉnh sửa lần cuối bởi soda_chanhmuoi : 08-05-2007 lúc 07:39 AM.

  9. #9
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Theo ý mình hiểu là Cấu tử và Hủy tử trong Class đúng không.
    Cấu tử: có hai loại là có tham số và không tham sô
    - loại ko tham số để khởi tạo giá trị mặc định khi đối tượng được gọi.
    - loại có tham số để khởi tạo giá trị tùy ý người dùng.

  10. #10
    Ngày gia nhập
    05 2007
    Bài viết
    2

    hàm constructor có tác dụng khởi tạo đối tựon ngay lập tức
    giống như việc chương trình tựh động khởi gán giá trị 0 cho biến long
    và 2 cho int
    còn hàm destructor sẽ dọn dẹp trứoc khi đối tượng bị hủy ví dụ như khi kết thúc một hàm
    nếu không có hàm này tuy đối tựon bị hủy nhưng vẫn còn vùng nhớ bị chiếm lãng phí bộ nhớ

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

  1. Lập trình C++ bản chất của constructor và destructor trong một lớp như thế nào?
    Gửi bởi kutoyeuem trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 06-12-2010, 01:27 AM
  2. “Nếu lớp có Destructor ảo sẽ có constructor ảo”, phải vậy ko?
    Gửi bởi thientamtita trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 24
    Bài viết cuối: 25-06-2010, 03:14 AM
  3. Constructor và Destructor chạy trong Dev-C??
    Gửi bởi soujiro_seta trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 08-09-2009, 01:24 PM
  4. Constructor và Destructor của lớp cơ sở !?
    Gửi bởi howto trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 19-01-2009, 04:22 PM
  5. Hàm constructor và destructor
    Gửi bởi 1st | Kylin 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: 03-06-2008, 01:56 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