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

Quy tắc Ba (Rule of Three) trong C++ là gì?


Quy tắc Ba là một quy tắc chung trong C++. Đây là một thói quen tốt nói rằng: Nếu lớp của bạn cần định nghĩa rõ ràng bất kỳ cái nào trong ba thành phần sau:

  • Hàm tạo sao chép (copy constructor),
  • Toán tử gán (assignment operator),
  • Hàm hủy (destructor),

thì nó có khả năng cao cần cả ba.

Tại sao? Bởi vì nếu lớp của bạn yêu cầu bất kỳ thứ nào ở trên, nó đang quản lý tài nguyên được cấp phát động và có thể sẽ cần các cái còn lại để quản lý thành công. Ví dụ, nếu bạn cần toán tử gán, bạn đang tạo bản sao của các đối tượng đang được sao chép bằng tham chiếu, do đó cấp phát tài nguyên. Bạn sẽ cần hàm tạo sao chép để sao chép và hàm hủy để giải phóng tài nguyên đó.