ачность: кто именно должен отв

Автор admin Вторник, 16 июня 2009 11:32

ачность: кто именно должен отвечать за инициализацию? По этой причине виртуальная база должна инициализироваться последним производным классом в иерархии. А как насчет выражений в конструкторах Left и Right, которые тоже инициализируют Тор? Конечно, они необходимы для создания самостоятельных объектов Left и Right, но при создании объекта Bottom эти выражения должны игнорироваться (отсюда нули в их инициализаторах в конструкторе Bottom — при выполнении конструкторов Left и Right в контексте объекта Bottom любые значения в этих позициях игнорируются). Компилятор позаботится обо всем за вас, но вы должны понимать, кто и за что отвечает. Всегда следите за тем, чтобы все конкретные (не абстрактные) классы в иерархиях множественного наследования обеспечивали должную инициализацию всех своих виртуальных базовых классов. Эти правила относятся не только к инициализации, но и ко всем операциям, распространяющимся на иерархию классов. Рассмотрим оператор записи в поток из предыдущего фрагмента. Данные были объявлены защищенными, чтобы можно было «сжульничать» и обратиться к унаследованным данным из операторной фу


Комментарии закрыты.