Làm cách nào để hạn chế cấp phát động của một đối tượng trong C ++?
Làm cách nào để hạn chế cấp phát động của một đối tượng trong C ++?
Anonim

Dựa trên ngăn xếp các đối tượng được quản lý ngầm bởi C ++ trình biên dịch. Chúng bị phá hủy khi chúng vượt ra ngoài phạm vi và các đối tượng được phân bổ động phải được phát hành theo cách thủ công, sử dụng toán tử xóa nếu không kỉ niệm rò rỉ xảy ra. C ++ không hỗ trợ phương pháp thu gom rác tự động được sử dụng bởi các ngôn ngữ như Java & C #.

Lưu ý điều này, làm cách nào để hạn chế cấp phát động của một đối tượng trong C ++?

Dựa trên ngăn xếp các đối tượng được quản lý ngầm bởi C ++ trình biên dịch. Chúng bị phá hủy khi chúng vượt ra ngoài phạm vi và các đối tượng được phân bổ động phải được phát hành theo cách thủ công, sử dụng toán tử xóa nếu không kỉ niệm rò rỉ xảy ra. C ++ không hỗ trợ phương pháp thu gom rác tự động được sử dụng bởi các ngôn ngữ như Java & C #.

Ngoài ra, chúng ta có thể cấp phát bộ nhớ động cho các đối tượng trong CPP không? Phân bổ bộ nhớ động vì Đối tượng Chúng tôi có thể cũng phân bổ động các đối tượng . Như chúng tôi biết rằng Constructor là một hàm thành viên của một lớp được gọi bất cứ khi nào sự vật được tạo ra của lớp đó. Hàm hủy cũng là một hàm thành viên lớp được gọi bất cứ khi nào sự vật đi ra khỏi phạm vi.

Mọi người cũng hỏi, làm thế nào để bạn tạo một lớp C ++ mà các đối tượng chỉ có thể được cấp phát động?

  1. Không thể hoàn thành. Điều duy nhất bạn có thể làm là Đặt phương thức khởi tạo là riêng tư và có một nhà máy tĩnh để xây dựng một thể hiện mới của lớp. -
  2. Tạo một lớp như vậy chắc chắn là một vấn đề.
  3. Đó là một yêu cầu rất kỳ quặc.

Tại sao chúng ta cần thực hiện khởi tạo động các đối tượng?

Các Khởi tạo động của các đối tượng có nghĩa là khởi tạo các thành viên dữ liệu của lớp trong khi tạo sự vật . Khi nào chúng tôi muốn để cung cấp các giá trị ban đầu hoặc mặc định cho các thành viên dữ liệu trong khi tạo sự vật - chúng tôi cần sử dụng khởi tạo động của các đối tượng.