analizer
05.10.2011 18:45 mcabber
вопрос на пять с плюсом: http://ideone.com/dqrLf . Да, вопрос звучит именно как: «как это сделать, не вводя виртуальное наследование?». Над аггрегированием уже думаю, да.
вопрос на пять с плюсом: http://ideone.com/dqrLf . Да, вопрос звучит именно как: «как это сделать, не вводя виртуальное наследование?». Над аггрегированием уже думаю, да.
Может я чего-то не понимаю. Зачем C наследовать IFace?
чтобы он тоже был интерфейсом для него, со своей собственного логикой
он же и от A и от B получает интерфейс IFace. нафига еще один? :-)
аа, понял вопрос. только вот меня смущает IFace* b = &c; ведь IFace — это абстрактный интерфейс, над которым ты потом не сможешь делать вызовы. потому (по моей ни разу не плюсовой логике) надо делать либо уже A* b, либо B* b. всё равно тебе ведь надо делать cast в дальнейшем либо туда либо туда. не? (хотя да, если наследовать только A — оно взлетит, но как-то неправильно это)
почему я не смогу делать вызов b→f();?
хотя да, хер его знает.