Могу ли я изменить статус частные члены базового класса?

Я использую wxWidgets, где, если вы когда-либо использовали его, вы знаете, что в базовом классе есть много общедоступных функций. столкнулся с ситуацией, когда я не хотел бы, чтобы метод SetText () вызывался непосредственно из производного класса. То есть производный класс унаследовал функцию SetText () , но я не хотят, чтобы эта функция была доступна клиентам. Вместо этого я предоставляю две новые функции, которые вызывают SetText () , но не раньше, чем будут выполнены некоторые дополнительные операции.

В настоящее время клиент (я!) Может забыть вызвать специальные функции и просто вызвать SetText () . Следовательно, некоторые лишние операции выполняться не будут. Эти операции достаточно тонкие, чтобы их можно было легко упустить из виду.

Итак, могу ли я пометить отдельные функции как частные, чтобы клиент не мог их вызвать, ИЛИ просто сделать невозможным для клиентов вызывать их напрямую (им придется использовать мои функции для косвенного вызова)?

Обратите внимание, что SetText () является не виртуальным.

РЕДАКТИРОВАТЬ: Для будущих программистов, которые наткнутся на этот вопрос, отметьте оба отмеченный ответ и ответ Дуга Т. .

5
задан Community 23 May 2017 в 11:53
поделиться