Tôi đã không tìm ra một tiêu đề tốt hơn cho câu hỏi. Để tôi giải thích rõ hơn bây giờ:Làm cách nào để ghi đè lên các phương thức đối tượng C++ lồng nhau?
Dự án tôi đang làm sẽ kết nối với máy chủ từ xa, mã hóa phiên và gửi/nhận gói dữ liệu. Tôi muốn làm cho nó đủ kiểu mô-đun, vì vậy tôi nghĩ sẽ rất tuyệt khi sử dụng 3 lớp riêng biệt. Đây sẽ là:
1) Lớp trình bao bọc socket với một số phương thức ảo như OnReceivedData() và OnConnected().
2) Lớp kế thừa của trình bao bọc socket, triển khai mã hóa dữ liệu trước khi được gửi và giải mã dữ liệu khi đến.
3) Đối tượng chính, sẽ ghi đè lên bất kỳ lớp nào ở trên tùy theo nhu cầu mã hóa hay không, vì vậy nó có thể nhận thông báo sự kiện OnReceivedData() và OnConnected() cũng như hành động dựa trên nó.
Vì vậy, vấn đề là làm cách nào để chương trình của tôi biết trước tiên phải gọi sự kiện trên đối tượng mã hóa và sau đó gọi cùng một sự kiện trên đối tượng chính? Bởi vì tôi đoán nếu tôi ghi đè lên trình bao socket bằng mã hóa và sau đó ghi đè mã hóa với đối tượng chính, nó có thể sẽ chỉ gọi phương thức đối tượng chính (nó sẽ gọi trực tiếp OnReceivedData() trên đối tượng chính, không đi qua giải mã đối tượng đầu tiên, phải không?).
Đây có phải là đa thừa kế không?
BTW nếu bạn cho rằng đó là thiết kế dự án tồi, tôi sẽ đánh giá cao bất kỳ cách tiếp cận nào tốt hơn. Cảm ơn bạn đã dành thời gian đọc nội dung này.
Đề xuất của tôi, hãy thử sử dụng các mẫu thiết kế, chẳng hạn như mẫu 'Builder' hoặc' Factory'. –