Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
11.01.2010, 02:44 | #1 |
Неактивный пользователь
Пол: Регистрация: 20.11.2009
Сообщений: 8
Репутация: 0
|
Указатели и функции класса
Вопрос состоит в следуюшем:
void(*g)(void)=f; Таким образом мы объявляем указатель g на функцию f с пустым списком параметров, если функция f где-то в программе уже определена. Но что если f принадлежит классу? Как в этом случае объявить указатель на эту функцию? |
Реклама: | Рекомендуем KNS.ru - NX.KTUCD.001 - Подарок каждому покупателю! | дискотека авария концерты 2024 москва | размеры ролл ап | Рекомендуем супермаркет KNS - ибп PowerCom RPT-1000A - билеты на футбол в подарок каждому покупателю | Asana и Kaiten |
11.01.2010, 11:22 | #2 |
Постоялец
Пол: Регистрация: 02.07.2009
Сообщений: 393
Репутация: 79
|
Re: Указатели и функции класса
Во-первых метод класса нужно public сделать... Иначе просто не даст её нормально использовать или даже выполнить...
а потом должен прокатить такой код: Код:
void(*g)(void)=class_name.function_name; Если не секрет, зачем столь хитрые манипуляции?
__________________
Каждый человек, которому вы ответили на форуме "гугл в помощь" - потенциальный "возвращенец" в винды. (ц) |
Сказали спасибо: |
11.01.2010, 23:10 | #3 |
Неактивный пользователь
Пол: Регистрация: 20.11.2009
Сообщений: 8
Репутация: 0
|
Re: Указатели и функции класса
Спасибо, что обратили вниманиие на мой вопрос.
Я думаю, эту тему можно закрыть. Указатель на функцию класса объявляется следующим образом: Код:
void(My_Class::*g)(void) - на нестатическую функцию void(*g)(void) - на статическую функцию Код:
g=&My_Class::f; |
13.01.2010, 22:42 | #4 |
Неактивный пользователь
Пол: Регистрация: 14.12.2008
Сообщений: 20
Репутация: 1
|
Re: Указатели и функции класса
Нельзя вызвать нестатическую функцию для несконструированного объекта. Никак нельзя. Даже через указатель на функцию класса.
|
14.01.2010, 10:14 | #5 | |||||||||||||||||||||||
Постоялец
Пол: Регистрация: 02.07.2009
Сообщений: 393
Репутация: 79
|
Re: Указатели и функции класса
Нельзя... но он вроде и не собирался...
__________________
Каждый человек, которому вы ответили на форуме "гугл в помощь" - потенциальный "возвращенец" в винды. (ц) |
|||||||||||||||||||||||
14.01.2010, 22:02 | #6 |
Неактивный пользователь
Пол: Регистрация: 14.12.2008
Сообщений: 20
Репутация: 1
|
Re: Указатели и функции класса
Фраза "При этом объект класса можно не создавать и в том и в другом случае!!!" вводит людей в заблуждение, т.к. для первого случая экземпляр класса однозначно нужен |
18.01.2010, 02:36 | #7 |
Неактивный пользователь
Пол: Регистрация: 20.11.2009
Сообщений: 8
Репутация: 0
|
Re: Указатели и функции класса
При чем тут объект класса? Ддя того, чтобы проинициализировать указатель на функцию класса, не нужно никакого объекта, товарищи!!!
Этот указатель после инициализации будет содержать количество байт, которые нужно отступить от начала объекта, чтобы попасть в точку вызова функции. Но, внимание!!! Для вызова соответствующей функции наличие объекта обязательно! Код:
// Создаем объект класса и вызываем функцию: void(My_class::*g)(void)=&My_class::f; My_class object; (object.*g)(); |
03.01.2011, 16:12 | #8 |
Новичок
Пол: Регистрация: 03.01.2011
Сообщений: 4
Репутация: 1
|
Re: Указатели и функции класса
Функция в классе - та же функция вне класса (это знает только компилятор). И если с доступом всё хорошо - всё будет работать
|
05.02.2011, 09:44 | #9 |
Неактивный пользователь
Пол: Регистрация: 05.02.2011
Сообщений: 10
Репутация: 0
|
Re: Указатели и функции класса
если вункция принадлежит классу то для ее вызова надо иметь указатель на экзкмпляр класса
создай обычную функцию f(self) { self->f(); } и используй указатель на нее |
06.02.2011, 11:52 | #10 |
Неактивный пользователь
Пол: Регистрация: 06.02.2011
Сообщений: 6
Репутация: 0
|
Re: Указатели и функции класса
А как будет при наследовании?
|
22.05.2011, 22:02 | #11 |
Неактивный пользователь
Пол: Регистрация: 22.05.2011
Сообщений: 5
Репутация: 0
|
Re: Указатели и функции класса
указывает на ячейку памяти и принимает это!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Эх, дороженька!.. (дорожные знаки и указатели) | Dana Dana | Галерея Юмора | 843 | Вчера 14:35 |
Стрелки, указатели, фигуры, пиктограммы, дорожные знаки, таблички/ Simbols | arkad | Клипарт векторный | 16 | 23.01.2016 19:17 |
C# доступ из класса к классу | plahmonah | Программирование | 1 | 20.04.2010 18:45 |
Mercedes-Benz S-класса | AZLK | Новинки Мирового Автопрома | 0 | 01.08.2006 00:42 |
|
|