Вопрос на засыпку
От: KosTiger Россия  
Дата: 17.07.06 17:06
Оценка:
Подскажите, можно ли использовать защищенное наследование в случае:

Короткий пример кода:

#include <iostream>
#include <cstdlib>

class ISchnittstelle
{
    public:
        virtual std::string call_me() const =0;
        virtual ~ISchnittstelle(){}
};

class Klasse: protected ISchnittstelle
{
    protected:
        std::string call_me() const
        {
            return std::string("The method is defined!!!");
        }
    public:
        const ISchnittstelle* wunder()const
        {
            return this;
        }
};

using namespace std;

int main(int argc, char *argv[])
{
  cout << "Hello, world!" << endl;

  cout << Klasse().wunder()->call_me() << endl;

  return EXIT_SUCCESS;
}

//Пример у меня откомпилился и работает.

Мне надо предоставить интерфес. Проблема в том, что интерфейс сильно связывает реализацию — каждый класс, реализующий интерфейс должен иметь метод, возвращающий идентификатор класса. За уникальностью идентификаторов следит статический класс и, собственно, класс идентификатора. Перед предоставлением интерфейса нужна часть функциональности (нечто вроде возможности создать объект без идентификатора и посмотреть, нужен ли нам такой объект, если нужен, то подписать (назначить идентификатор) и предоставить, как реализатор интерфейса).

Огромное спасибо!
Re: Вопрос на засыпку
От: Константин Л. Франция  
Дата: 17.07.06 18:18
Оценка:
Здравствуйте, KosTiger, Вы писали:

А в чем вопрос то?
Re: Вопрос на засыпку
От: Павел Кузнецов  
Дата: 18.07.06 00:56
Оценка:
KosTiger,

> Подскажите, можно ли использовать защищенное наследование в случае: <...>


Можно.
Posted via RSDN NNTP Server 2.0
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[2]: Вопрос на засыпку
От: KosTiger Россия  
Дата: 18.07.06 07:09
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Здравствуйте, KosTiger, Вы писали:


КЛ>А в чем вопрос то?


Я про такое применение не читал, да и не встречалось оно мне. Первый вопрос — все ли компиляторы такую конструкцию поймут, а второе — не будет ли проблем с деструктором?
Re[3]: Вопрос на засыпку
От: Константин Л. Франция  
Дата: 18.07.06 09:02
Оценка:
Здравствуйте, KosTiger, Вы писали:

KT>Здравствуйте, Константин Л., Вы писали:


КЛ>>Здравствуйте, KosTiger, Вы писали:


КЛ>>А в чем вопрос то?


KT>Я про такое применение не читал, да и не встречалось оно мне. Первый вопрос — все ли компиляторы такую конструкцию поймут, а второе — не будет ли проблем с деструктором?

вес нормально за исключением того, что Klasse не является полиморфным классом по отн. к ISchnittstelle со всеми вытекающими
Re[4]: Вопрос на засыпку
От: KosTiger Россия  
Дата: 18.07.06 09:29
Оценка:
Здравствуйте, Константин Л., Вы писали:

KT>>Я про такое применение не читал, да и не встречалось оно мне. Первый вопрос — все ли компиляторы такую конструкцию поймут, а второе — не будет ли проблем с деструктором?

КЛ>вес нормально за исключением того, что Klasse не является полиморфным классом по отн. к ISchnittstelle со всеми вытекающими

Ну это мне и требуется — класс прикидывается интерфейсом только при определенных условиях.

Спасибо за комментарии!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.