Здравствуйте, igna, Вы писали:
I>Тут ты разрешаешь присваивание объекта класса SeniorDeveloper объекту класса Developer, при этом происходит slicing.
но я же не сделал описания что это такое
у меня два слоя: интерфейс и реализация. конкретно это — интерфейс слоя реализации. его видит только реализация слоя интерфейса (пользователь вообще ничего не видит (никаких IDeveloper, ISeniorDeveloper)), и в ней есть только IDeveloper, ISeniorDeveloper. а вот реализация слоя реализации знает как что и срезку допускать не будет (ответственность лежит на том, кто делает реализацию слоя реализации)
Здравствуйте, Sashaka, Вы писали:
S>Здравствуйте, о_О, Вы писали:
о_О>>Как часто применяется? Что плохого в таком подходе? Какие есть альтернативы?
S>И то и другое — зло.
parashift C++ FAQ
[25.2] I've been told that I should never use multiple inheritance. Is that right?
Grrrrrrrrr.
It really bothers me when people think they know what's best for your problem even though they've never seen your problem!! How can anybody possibly know that multiple inheritance won't help you accomplish your goals without knowing your goals?!?!?!?!!!
Next time somebody tells you that you should never use multiple inheritance, look them straight in the eye and say, "One size does not fit all." If they respond with something about their bad experience on their project, look them in the eye and repeat, slower this time, "One size does not fit all."
People who spout off one-size-fits-all rules presume to make your design decisions without knowing your requirements. They don't know where you're going but know how you should get there.
Don't trust an answer from someone who doesn't know the question.
Здравствуйте, о_О, Вы писали:
о_О>у меня два слоя: интерфейс и реализация. конкретно это — интерфейс слоя реализации. его видит только реализация слоя интерфейса (пользователь вообще ничего не видит (никаких IDeveloper, ISeniorDeveloper)), и в ней есть только IDeveloper, ISeniorDeveloper. а вот реализация слоя реализации знает как что и срезку допускать не будет (ответственность лежит на том, кто делает реализацию слоя реализации)
А слоя интерфейса реализации слоя реализации слоеного интефейса у тебя нет?
Re[4]: Наследование от конкретного класса опасно в C++
Здравствуйте, igna, Вы писали:
I>Здравствуйте, о_О, Вы писали:
о_О>>у меня два слоя: интерфейс и реализация. конкретно это — интерфейс слоя реализации. его видит только реализация слоя интерфейса (пользователь вообще ничего не видит (никаких IDeveloper, ISeniorDeveloper)), и в ней есть только IDeveloper, ISeniorDeveloper. а вот реализация слоя реализации знает как что и срезку допускать не будет (ответственность лежит на том, кто делает реализацию слоя реализации)
I>А слоя интерфейса реализации слоя реализации слоеного интефейса у тебя нет?
нет. делегирую операции прокси-объекту всего-навсего
Здравствуйте, о_О, Вы писали:
о_О>Какие есть альтернативы?
Не наследовать интерфейсы, и не надо никаких виртуальных наследований. =) Так в COM делают (там наследоваться виртуально можно только от IUknown).
Здравствуйте, Sir-G, Вы писали:
SG>Здравствуйте, о_О, Вы писали:
о_О>>Какие есть альтернативы? SG>Не наследовать интерфейсы, и не надо никаких виртуальных наследований. =) Так в COM делают (там наследоваться виртуально можно только от IUknown).