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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mencey
147 / 94 / 7
Регистрация: 22.07.2010
Сообщений: 424
#1

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

23.08.2010, 14:13. Просмотров 772. Ответов 5
Метки нет (Все метки)

Помогите написать определения(или объявления) функций которые соответсвуют типам указателей. С первой я разобрался, а вот со следую щими головоломками у меня не чё не получается!

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])();
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2010, 14:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатели на функции (C++):

Указатели и массивы. Указатели и функции - C++
Никак не разберусь с указателями на функцию. Пишу в Visual Studio. Надо написать функцию Compress() с использованием указателей, которая...

Указатели на массивы. Указатели и функции - C++
Вот задача: Даны два массива : А и B. Необходимо создать третий массив, в котором нужно собрать: -Элементы обоих массивов; -Общие...

Распечатать таблицы значений функций cox (x) и на отрезке [a; b] с шагом h, развив функции в ряд Тейлора и используя указатели на функции - C++
Распечатать таблицы значений функций cox (x) и на отрезке с шагом h, развив функции в ряд Тейлора и используя указатели на функции.

Указатели и указатели на указатели, а также типы данных - C++
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Шаблонные функции и указатели на функции - C++
Помогите доделать и исправить... Задание: 1. Создать структуру Прямоугольник, с полями Высота и Ширина. Создать массив объектов типа...

Указатели на функции - C++
Решите задачу , используя один указатель на функцию . Разработайте четыре функции над двумя целыми параметрами, соответствующими...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
23.08.2010, 15:49 #2
2. Указатель на функцию, принимающую один аргумент - int, и возвращающую указатель на массив из 10 элементов, являющихся указателями на void

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

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

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

Вроде так

Не по теме:

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

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

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

Не по теме:

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

0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
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]", так что с остальными примерами проблем быть не должно.
0
Mencey
147 / 94 / 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]
А вот это вообше ужас!О_о

0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
24.08.2010, 03:48 #6
Цитата Сообщение от Mencey Посмотреть сообщение
Да я ещё в самом начале!
Прочитай параграф "Определение указателя на функцию", страница 154, там все и описывается (и в следующем параграфе) на конкретном примере.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2010, 03:48
Привет! Вот еще темы с ответами:

Указатели на функции - C++
Народ! Прошу у вас помощи ещё раз! Дано такое задание: С заданной точность E (Е&gt;0) вычислить площадь заштрихованной фигуры Метод...

Указатели функции - C++
Прошу помочь знающих людей разобраться с указателями функции. На учебе задали вот такое задание: Используя указатели ф-ции нужно: 1)...

Указатели на функции - C++
Привет, я хочу объявить указатель на функцию, которая принимает в качестве аргумента указатель на функцию, которая принимает в качестве...

функции, указатели - C++
Ввести 2 массива из N неотрицательных чисел разной размерности. Считать N≤100. Конец ввода элементов индицирует ввод отрицательного числа. ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.08.2010, 03:48
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru