1 / 1 / 0
Регистрация: 11.05.2017
Сообщений: 48
1

Typedef void F(); typedef для типа функции через идентификатор

13.02.2018, 16:48. Показов 2130. Ответов 1
Метки нет (Все метки)

Здравствуйте

цитата из typedef MSDN
В следующем примере задан тип DRAWF для функции, не возвращающей никакого значения и принимающей два аргумента int.
C++
1
typedef void DRAWF( int, int );
После выполнения приведенного выше оператора typedef следующее объявление:
C++
1
DRAWF box;
будет эквивалентно следующему:
C++
1
void box( int, int );
в интернете мне удалось нарыть только один конкретный пример:
C++
1
2
3
4
5
6
7
class A
{
typedef void F();
F f;
}
 
void A::f() {std::cout << "blabla" << std::endl;}
так же возможно теперь через F*f создать указатель на функцию:
C++
1
2
3
4
5
6
7
8
9
10
void fv()
{std::cout << "bla bla" << std::endl;}
 
typedef void F();
F*fpt;
 
int main()
{
fpt = fv;
}
может у вас еще есть рабочие примеры с такой декларацией ? Тк. в MSDN по видимому поскупились на примеры использования этой не интуитивной вещи.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2018, 16:48
Ответы с готовыми решениями:

Определение типа через typedef
То-ли я пересидел, то-ли я просто этого не знаю, но все же. Через typedef определить 1) массив...

Typedef void (WINAPI *GLEND)(void), как вызывать?
импортирую метод GLEND glmethod = (GLEND) GetProcAddress(hModule, &quot;glEnd&quot;); как его теперь...

Ошибка при компиляции Dev C++ 'typedef void* pthread_t'
Здравствуйте. Нужно установить программу D-ITG через Dev C++. Установил версию 5.10, открываю...

Нюансы синтаксиса: что означает запись typedef void(*PF) (); ?
Что означает эта команда typedef void(*PF) (); ?

1
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
13.02.2018, 17:23 2
по моему надо писать и в декларацию что то типа
C++
1
typedef void (*F)(int, int);
чтобы работать с указателем

Добавлено через 7 минут
а нет не нужно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
void m()
{
  std::cout << "bla" << endl;
}
 
typedef void F();
 
int main() 
{
   F* f;
   f = &m;
   f();
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2018, 17:23
Помогаю со студенческими работами здесь

Как правильно пользоваться typedef для декларации типа указателя на функцию?
Мне нужны будут функции, принимающие параметр-указатель на функции с одним и тем же списком...

Переопределение типа(typedef)
Не как не могу разобраться что такое StartDLL/Startup в данном случае typedef void...

Чем отличается define и typedef в контексте создания синонима для типа?
Чем отличается define и typedef в контексте создания синонима для типа? #define IntVector1...

Без использования typedef все работает. При добавлении typedef — более 100 ошибок
Есть программа, с описанием структуры и функций, работающими с ней. Без использования typedef все...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru