«Отсутствуют невиртуальные преобразователи» и наследование order

Мы имеют большую базу кода на C ++, и после небольшого рефакторинга (добавлен один класс и переписаны некоторые связанные методы) мы начали получать ошибки компоновщика в GCC 3 и 4. Ошибки компоновщика были, в частности, «отсутствующими ссылками на не виртуальные преобразователи» в небольших примеры программ, которые делят классы на подклассы в нашем большом SDK.

Поиск в Интернете не to
class Foo: public B, public A {}
в классах, в которых отсутствуют преобразователи, «устраняет» проблему.

Виртуальное наследование появляется только в одном, очень часто используемом базовом классе для подсчет ссылок. Я убедился, что каждое использование этого класса действительно является виртуальным публичным, а не только случайным публичным наследованием.

Очевидно, что возня с порядком наследования на самом деле не решает проблему. Что еще это могло быть?

8
задан random 20 December 2011 в 05:45
поделиться