Объединения как базовый класс

Стандарт определяет, что Unions нельзя использовать в качестве базового класса, но есть ли какие-то особые аргументы для этого? Насколько я понимаю, Unions могут иметь конструкторы, деструкторы, а также переменные-члены и методы для работы с этими переменными. Короче говоря, Union может инкапсулировать тип данных и состояние, к которым можно получить доступ через функции-члены. Таким образом, в большинстве случаев он квалифицируется как класс, и если он может действовать как класс, то почему ему запрещено действовать как базовый класс?

Edit: Хотя ответы пытаются объяснить рассуждение, я все еще не понимаю, почему Union как производный класс хуже, чем когда Union как просто класс. Так что в надежде получить более конкретный ответ и аргументацию я выставлю этот вопрос за вознаграждение. Без обид на уже опубликованные ответы, спасибо за них!

36
задан timrau 6 October 2012 в 15:18
поделиться