Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
sergun
Зарегистрирован: 25.11.2002 Сообщения: 5 Откуда: Новосибирск
|
Добавлено: Сб Июн 08 2002 23:34 Заголовок сообщения: Помогиет в теории C++ |
|
|
Как вызвать из статического члена класса обычный метод этого класса? Можно ли это вообще сделать? |
|
Вернуться к началу |
|
|
anthony
Зарегистрирован: 21.05.2002 Сообщения: 845 Откуда: Petrozavodsk
|
Добавлено: Вс Июн 09 2002 00:45 Заголовок сообщения: Нет. И вот почему... (+) |
|
|
Потому что статический метод класса не получает ссылки на объект (экземпляр) этого класса, а обычному методу она нужна. |
|
Вернуться к началу |
|
|
Alexy
Зарегистрирован: 22.10.2003 Сообщения: 48
|
Добавлено: Вс Июн 09 2002 20:13 Заголовок сообщения: Re: Нет. И вот почему... (+) |
|
|
Нет, если только экземпляр класса не передать явно:
class_type::static_member(class_type& или * instance) { instance.любой_private_member_доступен ... } |
|
Вернуться к началу |
|
|
anthony
Зарегистрирован: 21.05.2002 Сообщения: 845 Откуда: Petrozavodsk
|
Добавлено: Пн Июн 10 2002 00:18 Заголовок сообщения: Ну, это, батенька, как говорится, изврат, а не программинг на СПП... (-) |
|
|
- |
|
Вернуться к началу |
|
|
ilyasov Гость
|
Добавлено: Пн Июн 10 2002 10:11 Заголовок сообщения: Re: Помогиет в теории C++ |
|
|
Статическая функция не имеет неявного параметра this, т.к. может вызываться в случаях, когда еще не создано ни одного объекта данного типа. Функция -член класса обычного типа этот параметр имеет. Если в Вашем случае вы хотите вызвать функцию нестатическую из статической, то подразумевается, что в нестатической функции нет обращения к this, а, следовательно, ее можно сделать статической или даже создать на ее основе две функции -одну статическую, а другую -нет. |
|
Вернуться к началу |
|
|
sergun
Зарегистрирован: 25.11.2002 Сообщения: 5 Откуда: Новосибирск
|
Добавлено: Пн Июн 10 2002 10:33 Заголовок сообщения: Re: Ну, это, батенька, как говорится, изврат, а не программинг на СПП... (-) |
|
|
Why? |
|
Вернуться к началу |
|
|
anthony
Зарегистрирован: 21.05.2002 Сообщения: 845 Откуда: Petrozavodsk
|
Добавлено: Пн Июн 10 2002 15:41 Заголовок сообщения: just because it's not pretty! if a thing is not pretty - it's not a C++! (-) |
|
|
- |
|
Вернуться к началу |
|
|
Alexy
Зарегистрирован: 22.10.2003 Сообщения: 48
|
Добавлено: Ср Июн 12 2002 10:56 Заголовок сообщения: Re: извращение зависит от контекста |
|
|
class Singleton { private: Singleton(); ~Singleton() static Singleton* instance; public: static Singleton* getInstance() { if(!instance) instance = new Singleton; return instance; } }; |
|
Вернуться к началу |
|
|
|