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

Указатели на функции - C++

Восстановить пароль Регистрация
 
Mencey
 Аватар для Mencey
145 / 92 / 7
Регистрация: 22.07.2010
Сообщений: 424
23.08.2010, 14:13     Указатели на функции #1
Помогите написать определения(или объявления) функций которые соответсвуют типам указателей. С первой я разобрался, а вот со следую щими головоломками у меня не чё не получается!

1)
typedef void(*Tpf1)();
C++
1
2
3
// Функция
void f1() {}
Tpf1 pf1 = f1;


2)typedef void *(*(*Tpf2)(int))[10];

3)typedef float(*(*Tpf3)(int, int, float))(int);

4)typedef double(*(*(*Tpf4)())[10])();

5)typedef int (*(*Tpf5())[10])();
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2010, 14:13     Указатели на функции
Посмотрите здесь:

C++ Указатели и функции...
C++ Шаблонные функции и указатели на функции
Указатели на функции C++
C++ Указатели на функции
C++ функции, указатели
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
23.08.2010, 15:49     Указатели на функции #2
2. Указатель на функцию, принимающую один аргумент - int, и возвращающую указатель на массив из 10 элементов, являющихся указателями на void

3. Указатель на функцию, принимающую int, int, float, возвращающая указатель на функцию, принимающую int и возвращающую float

4. Указатель на функцию без аргументов, возвращающую указатель на массив из 10 элементов, являющихся указателями на функции без аргументов, возвращающие double

5. Указатель на функцию без аргументов, возвращающую массив из 10 указателей на функции без аргументов, возвращающие int

Вроде так

Не по теме:

Это откуда-то задание такое?

Mencey
 Аватар для Mencey
145 / 92 / 7
Регистрация: 22.07.2010
Сообщений: 424
23.08.2010, 20:04  [ТС]     Указатели на функции #3
Nameless One, а можно увидить эти функции в живую!

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Nameless One Посмотреть сообщение
Это откуда-то задание такое?
Это из книги "Философия C++". Я решил просто разбраться с ними, а то уже несколько дней их изучаю!

Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
23.08.2010, 20:28     Указатели на функции #4
Вот пример второго указателя:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cstdlib>
 
typedef void *(*(*Tpf2)(int))[10];
 
// 2. Указатель на функцию, принимающую один аргумент - int, и возвращающую указатель на массив из 10 элементов, являющихся указателями на void
void* (*func(int))[10]
{
    void* (*retval)[10]; // Без инициализации - ну да ладно, для примера сойдет
    return retval;
}
 
int main()
{
    Tpf2 pfunc = func;
    return EXIT_SUCCESS;
}
Остальные функции определяются аналогично.

PS. В той же "Философии", если я не ошибаюсь, описаны достаточно простые правила, которые позволяют интерпретировать объявления таких "заковыристых" идентификаторов, как "void* (*retval)[10]" и "void *(*(*Tpf2)(int))[10]", так что с остальными примерами проблем быть не должно.
Mencey
 Аватар для Mencey
145 / 92 / 7
Регистрация: 22.07.2010
Сообщений: 424
23.08.2010, 20:41  [ТС]     Указатели на функции #5
Nameless One, Спасибо помогли!

Кстати тему неохото создавать, кто-нибудь может дать какую-нибудь информацию по make файлам!

Не по теме:

Цитата Сообщение от Nameless One Посмотреть сообщение
PS. В той же "Философии", если я не ошибаюсь, описаны достаточно простые правила, которые позволяют интерпретировать объявления таких "заковыристых" идентификаторов, как "void* (*retval)[10]" и "void *(*(*Tpf2)(int))[10]", так что с остальными примерами проблем быть не должно.
Да я ещё в самом начале!
Цитата Сообщение от Nameless One Посмотреть сообщение
void* (*func(int))[10]
А вот это вообше ужас!О_о

Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
24.08.2010, 03:48     Указатели на функции #6
Цитата Сообщение от Mencey Посмотреть сообщение
Да я ещё в самом начале!
Прочитай параграф "Определение указателя на функцию", страница 154, там все и описывается (и в следующем параграфе) на конкретном примере.
Yandex
Объявления
24.08.2010, 03:48     Указатели на функции
Ответ Создать тему
Опции темы

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