Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Помогиет в теории C++

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
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;
}
};
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...