Giả sử tôi phải sử dụng C (không có C ++ hoặc trình biên dịch hướng đối tượng) và tôi không có phân bổ bộ nhớ động, một số kỹ thuật tôi có thể sử dụng để triển khai một lớp hoặc xấp xỉ tốt một lớp là gì? Có phải luôn luôn là một ý tưởng tốt để tách "lớp" thành một tệp riêng biệt? Giả sử rằng chúng ta có thể phân bổ bộ nhớ bằng cách giả sử một số lượng phiên bản cố định hoặc thậm chí xác định tham chiếu cho mỗi đối tượng là một hằng số trước khi biên dịch thời gian. Vui lòng đưa ra các giả định về khái niệm OOP nào tôi sẽ cần thực hiện (nó sẽ thay đổi) và đề xuất phương pháp tốt nhất cho mỗi khái niệm.
Những hạn chế:
- Tôi phải sử dụng C chứ không phải OOP vì tôi đang viết mã cho một hệ thống nhúng, và trình biên dịch và cơ sở mã có sẵn có trong C.
- Không có phân bổ bộ nhớ động vì chúng tôi không có đủ bộ nhớ để cho rằng chúng tôi sẽ không hết nếu chúng tôi bắt đầu phân bổ động.
- Trình biên dịch chúng tôi làm việc không có vấn đề với con trỏ hàm
apr_
và GLib tiền tố chúng g_
để tạo một không gian tên) và các yếu tố tổ chức khác mà không có OOP. Nếu bạn sắp tái cấu trúc ứng dụng, tôi sẽ xem xét dành thời gian cố gắng đưa ra cấu trúc thủ tục dễ bảo trì hơn.