Я использую личное наследование в проекте, в «реализованном в терминах» -чувствительности. Базовый класс определяет оператор [], и это функциональность, которую я хочу использовать. Таким образом, у меня естьЧастное наследование с использованием директивы, перегрузок?
class A : private B {
using B::operator[];
// ...
};
Однако, как я могу контролировать, какую версию оператора [] я получаю? На самом деле мне нужно больше одного, как версии const
, так и не const
. Можно ли это сделать?
В этом случае вы можете использовать композицию, чтобы дать вам желаемый результат вместо частного наследования. – James
Да, я знаю ... Вместо этого я изменил его на частное наследование, чтобы уменьшить количество кода пересылки. Так что это невозможно? Каким образом выбирается функция? – carlpett
Ваш код будет намного проще писать и поддерживать, если вы используете композицию вместо частного наследования. Эмпирическое правило заключается в том, чтобы не использовать внеуровневые функции C++, когда они не являются абсолютно необходимыми (из того, что вы сказали до сих пор, частное наследование в этом случае не требуется). –