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

Функция с параметрами типа указатель на символ и ссылка на целое - C++

Восстановить пароль Регистрация
 
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
01.04.2012, 21:12     Функция с параметрами типа указатель на символ и ссылка на целое #1
не могу разобратся с указателем на функцию
хотя вроде понял , но так как понял не работает
задание:
Составить описание : Функция с параметрами типа указатель на символ и
ссылка на целое, невозращающая значение:
функция с параметром , имеющим тип такого указателя:
функция , возращающая такой указатель:
Напишите определение функции , у которой параметр и возращаемое
значение имеют тип такого указателя. Подсказка: используйте typedef.

я написал:
C++
1
2
3
4
5
6
void func_1(char*,int&);
void (*f_p)(char*,int&);
f_p = &func_1;
void func_with_p(f_p* p);
f_p func_r();
f_p func_2(f_p* p);
мне отвечает:
1>c:\users\oleynik\documents\visual studio
2010\projects\study\study\lesson_4.h(5): error C4430: missing type
specifier - int assumed. Note: C++ does not support default-int
1>c:\users\oleynik\documents\visual studio
2010\projects\study\study\lesson_4.h(5): error C2373: 'f_p' :
redefinition; different type modifiers
1> c:\users\oleynik\documents\visual studio
2010\projects\study\study\lesson_4.h(4) : see declaration of 'f_p'
1>c:\users\oleynik\documents\visual studio
2010\projects\study\study\lesson_4.h(5): error C2440: 'initializing' :
cannot convert from 'void (__cdecl *)(char *,int &)' to 'int'
1> There is no context in which this conversion is possible
1>c:\users\oleynik\documents\visual studio
2010\projects\study\study\lesson_4.h(6): error C2065: 'p' : undeclared
identifier
1>c:\users\oleynik\documents\visual studio
2010\projects\study\study\lesson_4.h(6): error C2182: 'func_with_p' :
illegal use of type 'void'
1>c:\users\oleynik\documents\visual studio
2010\projects\study\study\lesson_4.h(6): fatal error C1903: unable to
recover from previous error(s); stopping compilation
попробовал сделать через typedef :
C++
1
2
3
4
5
6
void func_1(char*,int&);
typedef void (*f_p)(char*,int&);
f_p = &func_1;
void func_with_p(f_p* p);
f_p func_r();
f_p func_2(f_p* p);
мне отвечает:
1>c:\users\oleynik\documents\visual studio
2010\projects\study\study\lesson_4.h(5): error C2513: 'void (__cdecl
*)(char *,int &)' : no variable declared before '='
можете еще обьяснить что происходит с f_p когда я использую для нее typedef.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.04.2012, 21:14     Функция с параметрами типа указатель на символ и ссылка на целое #2
Можно программу целиком увидеть? Потому, что все ошибки явно возникают из-за неуместного употребления имён.
C
1
2
3
4
5
6
7
8
9
10
11
12
void func_1(char*,int&);
int main(){
int x=0;
void (f_p*)(char*, int&);
fp=func_1;
f_p("Hello", x);
return 0;
}
 
void func_1(char* str, int& n){
 
}
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
01.04.2012, 21:17  [ТС]     Функция с параметрами типа указатель на символ и ссылка на целое #3
Программу писал на visual c++ 10
могу скинуть весь проэкт, но по этой части это все
я изучаю книгу и по ней делаю задания, в том проэкте все мои задания сделаные
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
01.04.2012, 21:22     Функция с параметрами типа указатель на символ и ссылка на целое #4
C++
1
2
3
4
5
6
void func_1(char*,int&);
typedef void (*func_t)(char*,int&);
func_t f_p = &func_1;
void func_with_p(func_t p);
func_t func_r();
func_t func_2(func_t p);
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.04.2012, 21:26     Функция с параметрами типа указатель на символ и ссылка на целое #5
Ааа туплю туплю звезду же в определении надо впереди ставить!!
C++
1
2
3
4
int x=0;
    int (*f_p)(int);
    fp=func_1;
    f_p(10);
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
01.04.2012, 21:49  [ТС]     Функция с параметрами типа указатель на символ и ссылка на целое #6
Можете обьяснить разницу

C++
1
2
typedef void (*func_t)(char*,int&);
void (*func_t)(char*,int&);
что происходит когда используется typedef
в обоих случаях funс_t будет указатель?
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
01.04.2012, 21:59     Функция с параметрами типа указатель на символ и ссылка на целое #7
Цитата Сообщение от balrak Посмотреть сообщение
Можете обьяснить разницу

C++
1
2
typedef void (*func_t)(char*,int&);
void (*func_t)(char*,int&);
что происходит когда используется typedef
в обоих случаях funс_t будет указатель?
typedef определяет тип, второй вариант просто объявляет и определяет переменную
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
01.04.2012, 22:00     Функция с параметрами типа указатель на символ и ссылка на целое #8
Цитата Сообщение от balrak Посмотреть сообщение
в обоих случаях funс_t будет указатель?
только во 2м случае: func_t - переменная типа указатель на ф-ю.
в 1м же случае func_t - имя типа указателя на ф-ю.
typedef вводит новое имя (синоним) для типа (не для переменной).
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.04.2012, 22:05     Функция с параметрами типа указатель на символ и ссылка на целое #9
Цитата Сообщение от balrak Посмотреть сообщение
что происходит когда используется typedef
в обоих случаях funс_t будет указатель?
При чём тут вообще тайпдеф? Сначала прочитайте что такое тайпдеф, потом применяйте.
Тайпдеф определяет новое название для существующего типа. При чём используется, словно мы хотим объявить переменную с таким названием.
То есть так void (*func_t)(char*,int&) ты объявил указатель на функцию t и можешь использовать его.
А так typedef void (*func_t)(char*,int&); ты объявил новый тип данных func_t
И можешь использовать его как обычное название типа
например
C++
1
2
3
int x, y, z;//три переменных типа инт
func_t a, b, c;//три указателя на функцию, принимающую char* и int&
void (*func_t2)(char*,int&);//один указатель на функцию
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2012, 22:54     Функция с параметрами типа указатель на символ и ссылка на целое
Еще ссылки по теме:

C++ Шаблонная функция в простом классе и ошибка "Ссылка на неразрешенный внешний символ"
Функция, получающая указатель на обычную функцию, получает указатель на метод класса C++
C++ Ссылка на указатель на указатель

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

Или воспользуйтесь поиском по форуму:
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81
01.04.2012, 22:54  [ТС]     Функция с параметрами типа указатель на символ и ссылка на целое #10
Всем ограмное спасибо за помошь
Yandex
Объявления
01.04.2012, 22:54     Функция с параметрами типа указатель на символ и ссылка на целое
Ответ Создать тему
Опции темы

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