|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.05.2013, 02:25 | #1 |
Пользователь
Регистрация: 07.07.2012
Сообщений: 99
|
Статическая функция класса в С++
Доброй ночи. -> Доброго утра. -> Доброго дня.
Помогите пожалуйста. Это мне точно одному не разрешить. Не могу вызвать функцию рисования объекта через указатель в классе в статической функции класса. Код:
Человек
|
03.05.2013, 02:36 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
pGun тоже статическое должна быть тогда.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
03.05.2013, 02:39 | #3 |
Пользователь
Регистрация: 07.07.2012
Сообщений: 99
|
Мне теперь все зависимые функции статическими делать что ли?
У меня просто это не одна такая функция. Не делать же все классы статическими!!!!!
Человек
|
03.05.2013, 05:08 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
почему все?
делаете переменную статической, и тогда через эту переменную получаете доступ к методам. у вас синглетон на лицо. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
03.05.2013, 09:21 | #5 | |
Пользователь
Регистрация: 07.07.2012
Сообщений: 99
|
Цитата:
Код:
Код:
Человек
|
|
03.05.2013, 10:19 | #6 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
В связи с чем, возникает вопрос: а почему у Вас функция с названием, обозначающим применяемое к объекту действие (draw) является статической? |
|
03.05.2013, 10:38 | #7 | |
Пользователь
Регистрация: 07.07.2012
Сообщений: 99
|
Цитата:
она просит void (*func)() а не void (TPlayingField::*)()
Человек
Последний раз редактировалось Артём Волжанкин; 03.05.2013 в 10:42. |
|
03.05.2013, 10:47 | #8 |
Пользователь
Регистрация: 07.07.2012
Сообщений: 99
|
/* GLUT window callback sub-API. */
extern void APIENTRY glutDisplayFunc(void (*func)(void));
Человек
|
03.05.2013, 11:10 | #9 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Так что смысл включения draw как члена какого-то конкретного класса есть, но в принципе, её с тем же успехом можно объявить просто функцией, не входящей в какой-либо класс. Исходите из этого. Можно написать примерно так (давно не брал в руки этих шашек, так что не поручусь за оптимальность): Код:
Последний раз редактировалось Abstraction; 03.05.2013 в 11:15. |
|
03.05.2013, 11:42 | #10 |
Пользователь
Регистрация: 07.07.2012
Сообщений: 99
|
только теперь на это ругается
glutDisplayFunc(draw) она просит void (*func)() а не void (TPlayingField::*)()
Человек
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Функция базового класса вызывает критическую ошибку при вызове для класса-потомка | Archet | Общие вопросы C/C++ | 7 | 17.01.2012 20:17 |
функция, возвращающая экземпляр класса | Juffin | Общие вопросы Delphi | 2 | 01.11.2010 17:42 |
Функция - член класса | Syltan | Общие вопросы C/C++ | 9 | 06.10.2009 23:44 |
Указатеть на функция-член класса | BioS | Общие вопросы C/C++ | 6 | 29.09.2009 00:04 |
одна функция потока, а другая функция - член класса запускающего этот поток | Дмитрий_Ч | Общие вопросы C/C++ | 2 | 27.09.2007 08:50 |