Форум программистов, компьютерный форум CyberForum.ru

Вопрос о static методе - C++

Восстановить пароль Регистрация
 
BagmutA
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 10
14.02.2012, 14:27     Вопрос о static методе #1
Имеется объект класса A.
Имеется класс B в котором объявлен статический метод M.
Из объект класса A вызывается метод M.

Можно ли получить в методе M указатьль на объект класа из которого производился вызов этого метода?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2012, 14:27     Вопрос о static методе
Посмотрите здесь:

C++ Двоеточие в методе класса
C++ static const
C++ static и const
C++ Назначение static ?
Выделение памяти в методе C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
14.02.2012, 14:59     Вопрос о static методе #2
не передавая явно - нет. если я, конечно, правильно понял в чем вопрос.
BagmutA
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 10
14.02.2012, 15:13  [ТС]     Вопрос о static методе #3
плохо
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
14.02.2012, 23:39     Вопрос о static методе #4
BagmutA, а вы опишите задачу, может коллективный разум поможет найти альтернативное решение.
BagmutA
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 10
15.02.2012, 12:24  [ТС]     Вопрос о static методе #5
Пишу приложение на Qt.
Как известно Qt позволяет копировать единичные файлы. Поэтому пишу свой статический метод который позволяет копировать файлы и папки с необходимыми проверками. В случае если файл уже существует или произошла какая-то ошибка, показывается:

C++
1
StandardButton QMessageBox::warning ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton )
Он требует QWidget * parent, чтобы знать в контексте какого окна показыватся. А вот передавать указатель в мой метод на текущий объект (наследник от QWidget) не прикольно. Вот и возник вопрос может ли статический метод узнать кем он был вызван?
Paporotnik
383 / 227 / 7
Регистрация: 06.07.2011
Сообщений: 512
15.02.2012, 13:59     Вопрос о static методе #6
ну, очевидно, что если ты не хочешь передавать в метод адрес виджета, то нужно вырезать из него все обращения к этому виджету. почему бы не сделать этот статический метод возвращающим нечто вроде enum copyResult {UNKNOWN, SUCCESS, ERROR....}, а в методе, где это копирование вызывалось, результат анализировать и уже там решать, какое окошко с ошибкой создать.
либо отказаться от статического метода в пользу слота. тогда передача указателя на виджет будет скрыта в теле слота и получаться из метода QObject::sender().
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2012, 14:12     Вопрос о static методе
Еще ссылки по теме:

C++ использование this в методе класса
Static C++
Нужно чтобы введённый студент в методе in вывелся на экран как в методе out C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
BagmutA
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 10
15.02.2012, 14:12  [ТС]     Вопрос о static методе #7
Цитата Сообщение от Paporotnik Посмотреть сообщение
ну, очевидно, что если ты не хочешь передавать в метод адрес виджета, то нужно вырезать из него все обращения к этому виджету. почему бы не сделать этот статический метод возвращающим нечто вроде enum copyResult {UNKNOWN, SUCCESS, ERROR....}, а в методе, где это копирование вызывалось, результат анализировать и уже там решать, какое окошко с ошибкой создать.
В процессе копирования (нескольких файлов), есть необходимость вывода окна на подтверждение перезаписи файла, пока пользователь не примет решение процесс копирования не может быть закончен.
Yandex
Объявления
15.02.2012, 14:12     Вопрос о static методе
Ответ Создать тему
Опции темы

Текущее время: 03:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru