Tôi đang sử dụng quyền thừa kế riêng trong một dự án, trong phần "được triển khai dưới dạng" -sense. Lớp cơ sở định nghĩa toán tử [], và đây là chức năng tôi muốn sử dụng. Do đó, tôi cóThừa kế riêng sử dụng chỉ thị, quá tải?
class A : private B {
using B::operator[];
// ...
};
Tuy nhiên, làm cách nào để kiểm soát phiên bản của toán tử [] tôi nhận được? Trong thực tế, tôi cần nhiều hơn một phiên bản const
và không phải const
. Điều này có thể được thực hiện?
Trong trường hợp này, bạn có thể sử dụng bố cục để cung cấp cho bạn kết quả mong muốn thay vì thừa kế riêng. – James
Vâng, tôi biết ... Tôi đã thay đổi nó thành quyền thừa kế riêng thay vì giảm số lượng mã chuyển tiếp. Vì vậy, nó không phải là có thể? Chức năng được chọn như thế nào? – carlpett
Mã của bạn sẽ dễ dàng hơn để viết và duy trì nếu bạn sử dụng bố cục thay vì thừa kế riêng ở đây. Quy tắc chung là không sử dụng các tính năng ngoài tường của C++ khi chúng không hoàn toàn cần thiết (từ những gì bạn đã nói cho đến nay, không cần phải thừa kế riêng trong trường hợp này). –