Re: Запретить конструкцию
От: _nn_  
Дата: 19.05.05 18:23
Оценка:
Здравствуйте, Edge, Вы писали:

E>Всем привет


E>Захотелось запретить объявление объекта класса через

E>
E>...
E>CClassName obj; //так нельзя
E>...
E>

E>При этом мне хочется чтобы можно было использовать только динамическое создание обьекта
E>
E>...
E>CClassName *obj = new CClassName; 
E>...
E>

E>Причем чтобы ошибки отлавливались при компиляции...

E>Спасибо за внимание


Следует объявить конструктор защищенным и предоставить функцию создания объекта динамически :
class a
{
public:
    static a* create() { return new a; }
protected:
    a(){}
};

int main()
{
 a* p = a::create(); // OK
 a x; // Error
}
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.