Цитата(Remiznik @ 13.10.2011, 10:18 ) | | Получилось с множественным наследованием. Способ от math64 не понял. |
Такой способ может понадобиться если в наследуемом классе будут методы одноимённые с существующими в QObject, например virtual MyProperty* property(const char*); Тогда создаются два класса, один наследуется от одного базового класса, другой от второго базового класса, они объявляются friend друг другу и имеют указатели друг на друга. Для пользователя классов оставляется видимым только один, другой объявляется в приватном заголовке (аналогично сделано почти со всеми классами Qt, но в других целях, и открытым объявляется наследник QObject). Для доступа к методам приватного класса в открытом создаются методы (обычно нет необходимости делать их виртуальными), которые вызывают методы приватного класса. В данном случае при вызове connect открытого класса вызовется connect приватного класса и соединение будет со слотом приватного класса; В самом слоте открытый класс будет доступен через указатель parent. |