Tất cả các câu trả lời tốt.
Tôi sẽ chỉ thêm "giảm thiểu cấu trúc dữ liệu". Điều này thậm chí có thể dễ dàng hơn trong C, bởi vì nếu C ++ là "C với các lớp", OOP đang cố gắng khuyến khích bạn lấy mọi danh từ / động từ trong đầu và biến nó thành một lớp / phương thức. Điều đó có thể rất lãng phí.
Ví dụ: giả sử bạn có một loạt các kết quả đọc nhiệt độ tại các thời điểm và bạn muốn hiển thị chúng dưới dạng biểu đồ đường trong Windows. Windows có một thông báo PAINT và khi bạn nhận được nó, bạn có thể lặp qua mảng thực hiện các chức năng LineTo, chia tỷ lệ dữ liệu khi bạn chuyển nó sang tọa độ pixel.
Những gì tôi đã thấy quá nhiều lần là, vì biểu đồ bao gồm các điểm và đường, nên mọi người sẽ xây dựng một cấu trúc dữ liệu bao gồm các đối tượng điểm và đối tượng đường, mỗi đối tượng có khả năng DrawMyself, và sau đó làm cho điều đó trở nên bền bỉ, trên lý thuyết bằng cách nào đó "hiệu quả hơn", hoặc họ có thể, chỉ có thể, phải có khả năng di chuột qua các phần của biểu đồ và hiển thị dữ liệu ở dạng số, vì vậy họ xây dựng các phương thức vào các đối tượng để giải quyết vấn đề đó và tất nhiên, liên quan đến việc tạo và xóa nhiều đối tượng hơn.
Vì vậy, bạn kết thúc với một lượng lớn mã rất dễ đọc và chỉ dành 90% thời gian để quản lý các đối tượng.
Tất cả những điều này được thực hiện với danh nghĩa "thực hành lập trình tốt" và "hiệu quả".
Ít nhất trong C, cách đơn giản, hiệu quả sẽ rõ ràng hơn, và sự cám dỗ xây dựng kim tự tháp ít mạnh hơn.