Как НЕ использовать виртуальное наследование? - PullRequest
2 голосов
/ 12 июля 2011

Я делаю программу Win32 API. Сначала я создал базовый класс с именем WinClass и унаследовал от него, как и десятки других классов. Теперь мне нужно создать производный класс из двух классов, унаследованных от базового класса WinControl и WinHandler . Поскольку я собираюсь сделать еще много производных классов из исходной дюжины, у меня будет использовать виртуальное наследование, как и любой класс, унаследованный от WinClass . Так есть ли способ сделать это без , используя виртуальное наследование ?

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Узнайте, как вообще избежать злоупотребления наследованием.Например, прочитайте эту статью

http://berniesumption.com/software/inheritance-is-evil-and-must-be-destroyed/

Хорошее начало, чтобы научиться делать вещи так, как вы этого хотите (с правильным использованием наследования), - книга «Шаблоны проектирования».":

http://c2.com/cgi/wiki?DesignPatternsBook

0 голосов
/ 12 июля 2011

Сначала я создал базовый класс WinClass и унаследовал от него, как и десятки других классов.

И вот ваша первая проблема.Если WPF научил нас чему-то, то должно быть, что наследование не обязательно является лучшей моделью для проектирования графического интерфейса.

Так есть ли способ сделать это БЕЗ использования виртуального наследования?

Да: WinControl и WinHandler не должны быть производными от WinClass.Вы не сказали, что они делают, поэтому я не могу дать какой-либо конкретный совет о них.Действительно, кажется, что вам нужно отношение «имеет», а не «есть», которое приносит наследование.

Кроме того, нет необходимости использовать жирный шрифт для имен классов.Просто используйте теги кода, которые предоставляет StackOverflow.Также нет необходимости ШОУ жирным шрифтом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...