Tất nhiên là bạn có thể, tôi chỉ tự hỏi liệu nó có hợp lý để thiết kế theo cách như vậy không.
Tôi đang tạo một bản sao đột phá và đang thực hiện một số thiết kế lớp. Tôi muốn sử dụng tính kế thừa, mặc dù tôi không phải áp dụng những gì tôi đã học được trong C ++. Tôi đã suy nghĩ về thiết kế lớp học và nghĩ ra một thứ như thế này:
GameObject -> lớp cơ sở (bao gồm các thành viên dữ liệu như x và y offset, và một vectơ SDL_Surface *
MovableObject: GameObject -> lớp trừu tượng + lớp dẫn xuất của GameObject (một phương thức void move () = 0;)
NonMovableObject: GameObject lớp trống ... không có phương thức hoặc thành viên dữ liệu nào ngoài hàm tạo và hàm hủy (ít nhất là bây giờ?).
Sau đó, tôi đã lên kế hoạch để lấy một lớp từ NonMovableObject, như Tileset: NonMovableObject. Tôi chỉ tự hỏi liệu các lớp trừu tượng "trống" hay chỉ các lớp trống thường được sử dụng ... Tôi nhận thấy rằng cách tôi đang làm điều này, tôi chỉ tạo lớp NonMovableObject chỉ vì mục đích phân loại.
Tôi biết tôi đang suy nghĩ quá nhiều thứ chỉ để tạo một bản sao đột phá, nhưng tôi không tập trung vào trò chơi và tập trung vào việc kế thừa và thiết kế một số khung trò chơi.
MovableObject
khôngNonMovableObject
thể thừa hưởng lẫn nhau, cả hai đều có một vị trí; như vậy, cả hai nên được tiêu thụ bằng mã, ví dụ như muốn hướng mục tiêu của quái vật về phía đối tượng mà không quan tâm đến việc đối tượng đó có thể di chuyển hay không.