Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция переданная в параметре 
:(
    Опции темы
_Наталья_
Дата 17.1.2007, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.1.2007
Где: Брюссель (Москва)

Репутация: нет
Всего: нет



Здравствуйте, у меня маленький вопрос, может кто-то сможет мне помочь
У меня проект, в котором надо, цитирую "Класс будет тестирован при помощи внешней функции, принимающей два параметра - двоичное дерево и функцию обработки узлов". может не много коряво написала, просто перевожу, и не знаю точно как на русском будет.  В общем это двоичное дерево, имеющее кк ои называют левого и правого сына, сыновья, как и сам отец это узлы.
Хотелось бы узнать, может кто-то сможет помочь, что вообще означает эта передача данных в параметрах и как это делается  smile потому что нигде не могу найти, а после завтра надо сдавать.

Заранее благодарна!
PM MAIL ICQ   Вверх
Anikmar
Дата 17.1.2007, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Параметры - это то, что записывается в скобках после имени функции.
Например:

int Func1(void *Param1, int Param2); 
Функция Func1 принимает 2 параметра: указатель и целое число. В вашем случае имеется некое дерево - как-то организованное. Далее некая функция тестирования, которая должна что-то там тестировать

bool TestFun(void *pTree,TObrFun Fun);

Здесь pTree - указатель на дерево
Fun - функция проверки узла. Так как я понятия не имею что эта за функция - предположил, что она на входе получает указатель на узел
Тогда это можно представить так:
typedef bool (*)(void*) TObrFun;    // У меня всегда было с этим плохо, надеюсь правильно

т.е. TObrFun - это указатель на функцию, принимающую указатель и возвращающую bool
PM MAIL ICQ   Вверх
_Наталья_
Дата 17.1.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.1.2007
Где: Брюссель (Москва)

Репутация: нет
Всего: нет



Цитата

bool TestFun(void *pTree,TObrFun Fun);

Здесь pTree - указатель на дерево
Fun - функция проверки узла. Так как я понятия не имею что эта за функция - предположил, что она на входе получает указатель на узел
Тогда это можно представить так:
typedef bool (*)(void*) TObrFun;    // У меня всегда было с этим плохо, надеюсь правильно


то есть если я правильно понимаю, то получается что мы декларируем указатель на функцию - (*), который будет называться TObrFun, а (void*) это параметры? а можно вместо воида к примеру Node*? или обязательно воид?

Огромное спасибо за ответ!  smile 
PM MAIL ICQ   Вверх
Anikmar
Дата 17.1.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Цитата(_Наталья_ @  17.1.2007,  18:15 Найти цитируемый пост)
а можно вместо воида к примеру Node*? или обязательно воид?

Конечно можно - это я просто пример дал.


PM MAIL ICQ   Вверх
JackYF
Дата 17.1.2007, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(_Наталья_ @  17.1.2007,  18:15 Найти цитируемый пост)
а можно вместо воида к примеру Node*? или обязательно воид?


Конечно, можно и Node*



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
_stranger_
Дата 17.1.2007, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 3.10.2006
Где: город-герой Киев

Репутация: 2
Всего: 2



Код

   typedef bool (*TObrFun)(void*);  // чуть поправил  :) 

PM MAIL   Вверх
JackYF
Дата 17.1.2007, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



блин smile, засиделся, просмотрел пост...


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Anikmar
Дата 17.1.2007, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



_stranger_, У меня всегда были проблемы с правильным объявлением указателей на функцию  smile  Уже сам хотел править
PM MAIL ICQ   Вверх
_Наталья_
Дата 17.1.2007, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.1.2007
Где: Брюссель (Москва)

Репутация: нет
Всего: нет



Огромное вам всем спасибо!
Как сдам экзамен - напишу, это ли хотел учитель или нет  smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0687 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.