Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Câu hỏi phỏng vấn C++ về Constructor và Destructor

Các câu hỏi phỏng vấn C++ thường gặp về Constructor và Destructor.

Constructor là gì?

Constructor là hàm thành viên của lớp trùng tên với lớp. Được gọi khi khởi tạo đối tượng. 3 loại:

  • Default constructor (không tham số)
  • Parameterized constructor (có tham số)
  • Copy constructor (khởi tạo từ đối tượng khác)

Cú pháp

class TenLop {
    TenLop() { /* constructor */ }
}

Destructor là gì?

Destructor là phương thức cùng tên lớp nhưng tiền tố là dấu ~. Được gọi khi đối tượng bị hủy hoặc ra khỏi phạm vi.

Cú pháp

class TenLop {
    ~TenLop() { /* destructor */ }
}

Công dụng của Constructor

Khởi tạo đối tượng khi tạo bằng từ khóa new. Khởi tạo biến thành viên, cấp phát bộ nhớ, gán giá trị mặc định.

Công dụng của Destructor

Giải phóng bộ nhớ khi đối tượng bị xóa (delete) hoặc ra khỏi phạm vi. Dọn dẹp tài nguyên.

Thứ tự thực thi Constructor

Theo thứ tự kế thừa: trước constructor lớp cơ sở, sau đến lớp dẫn xuất.

Thứ tự thực thi Destructor

Ngược lại constructor: trước hủy lớp dẫn xuất, sau hủy lớp cơ sở.

Default constructor có được tạo nếu ta tự viết constructor khác?

Nếu lập trình viên không định nghĩa constructor nào, trình biên dịch tự tạo default constructor. Nếu đã định nghĩa bất kỳ constructor nào, trình biên dịch KHÔNG tạo default constructor.