Любой способ предотвратить динамическое выделение класса?

Я использую базовый класс и подклассы C ++ (для ясности назовем их A и B) в своей встроенной системе.

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

Компилятор жалуется на отсутствие виртуального деструктора, что я понимаю, потому что это может вызвать у вас проблемы, если вы выделите B * и позже удалите указатель как экземпляр A * .

Но я никогда не собираюсь выделять экземпляры этого класса. Есть ли способ перегрузить оператор new () таким образом, чтобы он компилировался, если нет динамического выделения любого класса, но вызывал ошибку компилятора, если конечный пользователь пытается выделить новые экземпляры A или B?

Я ищу аналогичный подход к общей технике «отравления» конструкторов автоматического копирования компилятора с помощью частных конструкторов. (например, http://channel9.msdn.com/Forums/TechOff/252214-Private-copy-constructor-and-private-operator-C )

7
задан Lightness Races with Monica 24 October 2016 в 13:08
поделиться