Здравствуйте, гость ( Вход | Регистрация )
zamnach | Дата 30.3.2010, 18:22 |
+к вышесказанному: есть так называемые compile_time_assert, описанные в книге Александреску "Современное проектирование на C++" с помощью них можно организовать ругань компилера при вызове конструктора без new. |
|
kwisp | Дата 24.10.2009, 14:12 |
Мне кажется проще будет сделать сам класс так, чтобы обязать программера создавать его экземпляры на куче. ну да это не сложно допустим класс А нужно обязательно создавать в куче. делаем ему все конструкторы private и делаем ему друга ACreator который имеет статические функции Init() для каждого конструтора А создаем в инит в куче А и возвращаем указатель. можно эти статические функции прямо в А и засунуть кстаити. но в книженции одной хвалили способ с 2 классами. можно посмотреть классы smart-pointer`ов они на подобии делаются... может что нибудь удастся использовать. |
|
ViGOur | Дата 24.10.2009, 13:40 |
Мне кажется проще будет сделать сам класс так, чтобы обязать программера создавать его экземпляры на куче. | |
SABROG | Дата 23.10.2009, 23:03 |
Кстати может оффтопик, но такой вопрос сегодня назрел. А возможно ли создать класс таким образом, чтобы компилятор ругался, если экземпляр этого класса пытаются создать на стеке, а не на куче через new? | |
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.3.2024, 21:04 |