Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 28.03.2011
Сообщений: 22
1

В древности этим преподаватели якобы"убивали" зарвавшихся студентов

15.12.2012, 12:34. Показов 1773. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне рассказали историю, что этот вопрос валил студентов напрочь

"напишите прототип функции, принимающей в качестве одного из своих аргументов, указатель на такую же функцию"
Вопрос - это задание имеет смысл?
Можно ли его выполнить.
И в чем подвох?
Может это просто бессмыслица?

Так как мне в такой теоретической постановке ничего подобного делать не приходилось.
Подскажите пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2012, 12:34
Ответы с готовыми решениями:

Ореол древности
В самом деле, ведь все сокровища искусства, которыми мы обладаем сегодня, это всего-навсего...

Определить коэффициент древности имени
Катя очень любит историю, поэтому ей подарили книгу про древние индейские имена. В книге...

С чем сравнивали геометрические тела в древности?
С чем сравнивали геометрические тела в древности? Можно примеры! Добавлено через 4 часа 55 минут...

Новые решения задач древности (Трисекция угла, квадратура круга, удвоение куба)?
В статье рассматриваются три классические задачи древнегреческой математики: трисекция угла,...

БД Преподаватели
Нужно создать базу данных преподаватели. может кто - нибудь проверить правильно ли я привел ее к...

28
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
15.12.2012, 19:19 21
Author24 — интернет-сервис помощи студентам
Nick Alte, первый раз вижу такой typedef
C++
1
typedef void foofunc(footype);
что-то не догоняю, как можно создать экземпляр (не указатель) этого типа?
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
15.12.2012, 19:34 22
Kastaneda, как я понял, создается простой прототип функции.
Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
typedef void foo( int );
 
int main() {
   foo b;
 
   b( 10 );
 
   return 0;
}
 
void b( int num ) {
   std::cout << num << std::endl;
}
Добавлено через 1 минуту
EDIT: наверно правильнее будет сказать создается сигнатура а не прототип.
1
Kastaneda
15.12.2012, 20:44
  #23

Не по теме:

Ну да, что-то сам не додумался. Век живи - век учись :)

0
Эксперт С++
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
15.12.2012, 21:20 24
Цитата Сообщение от Kastaneda Посмотреть сообщение
как можно создать экземпляр (не указатель) этого типа?
Экземпляр (с телом функции) нельзя, но в данном случае оно нам и не надо, достаточно указателей/ссылок/объявлений.
1
1 / 1 / 0
Регистрация: 28.03.2011
Сообщений: 22
16.12.2012, 10:52  [ТС] 25
Все таки удалось от моего собеседника добиться МУ, он утверждает что условиям соответствует всего лишь одна строчка кода. И с видом павлина удалился.:-)

C++
1
void func(void (*)(...));
Честно говоря я смущен. Кто что может подсказать?
0
Эксперт С++
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
16.12.2012, 11:00 26
Параметр - указатель на функцию, принимающую произвольный набор параметров. Указатель на саму эту func не может быть приведён к такому типу неявно, только через принудительный reinterpret_cast. То есть, мы не можем просто вызвать func(func);, приходится преобразовывать, а значит, это не решение. С тем же (на самом деле, даже с бОльшим) успехом можно было бы преобразовывать указатель на void func(unsigned long). С практической точки зрения, здесь открывается простор для всяких ошибок и неприятных вещей.
1
1 / 1 / 0
Регистрация: 28.03.2011
Сообщений: 22
16.12.2012, 11:10  [ТС] 27
Дискуссия чисто теоретическая. Поэтому всем спасибо за участие.
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
16.12.2012, 13:01 28
Цитата Сообщение от nsl Посмотреть сообщение
Все таки удалось от моего собеседника добиться МУ, он утверждает что условиям соответствует всего лишь одна строчка кода. И с видом павлина удалился.:-)

C++
1
void func(void (*)(...));
У меня была така мысль, но я не стал ее озвучивать. Потому что в условии сказано
"напишите прототип функции, принимающей в качестве одного из своих аргументов, указатель на такую же функцию"
и приведенный выше прототип ни как не соответствует поставленой задаче.
1
1 / 1 / 0
Регистрация: 28.03.2011
Сообщений: 22
16.12.2012, 13:34  [ТС] 29
Цитата Сообщение от Kastaneda Посмотреть сообщение
У меня была така мысль, но я не стал ее озвучивать. Потому что в условии сказано

и приведенный выше прототип ни как не соответствует поставленой задаче.
В принципе мне и нужно было мнение сведующего специалиста, спасибо. Из дискуссии мне понятно, что мой собеседник просто что то подзабыл :-)
0
16.12.2012, 13:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2012, 13:34
Помогаю со студенческими работами здесь

БД Преподаватели
Добрый вечер. Создаю базу данных Преподаватели-Дисциплины. И все бы ничего, но с инфологической и...

C#.Преподаватели
Кого боги хотят покарать, того они делают педагогом. ...

Преподаватели и Студенты.
Всем здравствуйте! При решении одной из задач форума возникла мысль создать тему о взаимоотношении...

Преподаватели с форума
Не знаю, зайдёт ли, но попробую. В этой теме предлагаю собраться участникам, которые преподают...

Преподаватели на форуме
Стал интересен такой вопрос, бывают ли преподаватели информатики на этом форуме, и если да то как...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru