class method hiding. как по человечески?
От: JakeS  
Дата: 25.10.04 22:22
Оценка:
это менять нельзя. из библиотеки.
class c1
{
    ....
}

class c2: public c1
{
    ....
}

это можно.
class c3: public c2
{
    ....
}

Можно ли каким либо образом для объекта класса с3 запретить доступ ко всем методом унаследованным от класса с2, не запрещая доступа к методам унаследованным от класса с1?

Очевидное решение — опеределить все эти методы повторно в с3 как protected: с заглушками на вызов настоящих (внутрення реализация с3 основана на использовании методов с2). но очень уж много переписывать.
Re: class method hiding. как по человечески?
От: jazzer Россия Skype: enerjazzer
Дата: 25.10.04 22:27
Оценка:
Здравствуйте, JakeS, Вы писали:

JS>это менять нельзя. из библиотеки.

JS>
class c1
JS>{
JS>    ....
JS>}

JS>class c2: public c1
JS>{
JS>    ....
JS>}

JS>это можно.
JS>
JS>class c3: public c2
JS>{
JS>    ....
JS>}

JS>Можно ли каким либо образом для объекта класса с3 запретить доступ ко всем методом унаследованным от класса с2, не запрещая доступа к методам унаследованным от класса с1?

JS>Очевидное решение — опеределить все эти методы повторно в с3 как protected: с заглушками на вызов настоящих (внутрення реализация с3 основана на использовании методов с2). но очень уж много переписывать.


class c3: protected c2  // или private
{
public:
   using c1::f1;
   using c1::f2;
   ...
}
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.