|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.11.2011, 21:45 | #1 |
Пользователь
Регистрация: 05.11.2008
Сообщений: 33
|
функция получающая указатель на структуру
Доброго времени суток уважаемые!
Прошу помощи в интерисующем меня вопросе. Работаю в borlanc C 3.1 Есть проэкт, состоящий из двух файлов file_1.cpp file_2.cpp. В file_1.cpp находится функция main(), до неё объявлен шаблон структуры str. Внутри main() обявлен экземпляр структуры str - exemp_1. Во втором файле file_2.cpp находится функция funkciy(), которая должна получать в качестве входного параметра адрес экземпляра структуры exemp_1. Вопрос заключается в следующем: как написать в самой функции для того чтобы она получала требуемый адрес. Т.е. если бы мне надо было чтобы функция получала адрес переменной int per_1 , то это выглядело бы так: funkciy(int *per_1). Т.е. мне непонятно как обявить параметром функции получение адреса на некоторую структуру. Код:
|
20.11.2011, 21:52 | #2 |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
Точно также, как и для типа int.
Если на С пишите, то параметр функции должен быть объявлен в ней как struct str *parameter Если пишите на С++, то он может быть объявлен точно также, как на С, либо без ключевого слова struct str *parameter
Со мной можно встретиться на www.clipper.borda.ru
|
20.11.2011, 22:00 | #3 |
Пользователь
Регистрация: 05.11.2008
Сообщений: 33
|
вы правы, однако это справедливо только если реализация функции находится в том же файле, в котором объявлен экземпляр структуры, ну или в подключённой библиотеке H. А вот если функция в другом файле cpp, который является частью проекта, и в котором никто знать не знает про объявленный в main() шаблон функции. обявить же этот шаблон повторно в файле с функцией нельзя. Непонятно как туть быть.
|
20.11.2011, 22:10 | #4 | |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
Цитата:
Кроме того, в файле, гда находится main должна быть объявлена функция, которую вы вызываете. Делается это следующим образом. Объявление структуры и соответствующей функции помещается в заголовочный файл, а затем этот заголовочный файл включается в каждый модуль, где эта структура или функция используются. Пример такого заголовочного файла Код:
Со мной можно встретиться на www.clipper.borda.ru
|
|
20.11.2011, 22:14 | #5 |
Пользователь
Регистрация: 05.11.2008
Сообщений: 33
|
столкнулся с этим вопросом только сегодня, поэтому вероятно неточно задал вопрос. Суть в том что неоторая структура, например atr, шаблон которой объявлен, представляет собой пользовательский тип данных, который позволяет объявлять экземпляры этой структуры. По типу str exempliar_1. Это работает когда экземпляр и шаблон обявляются в одном файле. А вот как быть если в проэкте несколько файлов, шаблон объявлен в одном, а объявление экземпляра требуется в другом файле.
|
20.11.2011, 22:24 | #6 | |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
Цитата:
Со мной можно встретиться на www.clipper.borda.ru
Последний раз редактировалось Сыроежка; 20.11.2011 в 22:39. |
|
20.11.2011, 22:42 | #7 |
Пользователь
Регистрация: 05.11.2008
Сообщений: 33
|
хорошо, спасибо за помощь. Пойду разбираться.
|
21.11.2011, 21:30 | #8 |
Пользователь
Регистрация: 05.11.2008
Сообщений: 33
|
Сыроежка, благодарю за помощь! Вы оказалиь правы, а я просто устал и сразу невъехал. Проблема решена, ошибка осознана, СПАСИБО.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Указатель на функцию и функция-член | Granus | Общие вопросы C/C++ | 3 | 25.08.2011 13:20 |
Функция возвращающая указатель | ]tach[ | Общие вопросы C/C++ | 1 | 19.01.2011 14:35 |
Указатель на структуру.Инициализация функцией. | Aleksandr_Yanov | Общие вопросы C/C++ | 3 | 31.10.2010 16:36 |
программа получающая данные с сайта | пауэрлифтинг | Работа с сетью в Delphi | 1 | 08.03.2010 19:07 |