crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Возможен ли класс определяющий сам создан ли он на стеке
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
zamnach Дата 30.3.2010, 18:22
  +к вышесказанному: есть так называемые compile_time_assert,
описанные в книге Александреску "Как я тр@хнул ежика"
"Современное проектирование на C++"
с помощью них можно организовать ругань компилера при вызове конструктора без new.
kwisp Дата 24.10.2009, 14:12
 
Цитата(ViGOur @ 24.10.2009, 14:40) *
Мне кажется проще будет сделать сам класс так, чтобы обязать программера создавать его экземпляры на куче.

ну да это не сложно
допустим класс А нужно обязательно создавать в куче.
делаем ему все конструкторы private и делаем ему друга ACreator который имеет статические функции Init() для каждого конструтора А создаем в инит в куче А и возвращаем указатель.

можно эти статические функции прямо в А и засунуть кстаити. но в книженции одной хвалили способ с 2 классами.

можно посмотреть классы smart-pointer`ов они на подобии делаются... может что нибудь удастся использовать.
ViGOur Дата 24.10.2009, 13:40
  Мне кажется проще будет сделать сам класс так, чтобы обязать программера создавать его экземпляры на куче.
SABROG Дата 23.10.2009, 23:03
  Кстати может оффтопик, но такой вопрос сегодня назрел. А возможно ли создать класс таким образом, чтобы компилятор ругался, если экземпляр этого класса пытаются создать на стеке, а не на куче через new?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 21:04