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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
HeHyA4o
1 / 1 / 0
Регистрация: 17.10.2011
Сообщений: 46
#1

Подключение дополнительных модулей и работа с функциями из этих модулей - C++

16.03.2012, 19:26. Просмотров 1228. Ответов 5
Метки нет (Все метки)

Опять с вопросами после частично прочитанной книги "C++ Для Чайников". )
Сейчас пытаюсь понять как работает подключение дополнительных модулей и работа с функциями из этих модулей, нужно как то прописать прототип функции
C++
1
2
3
4
5
6
7
8
9
int test(char t[])
{
   int i;
     while (t[i]!=0)
     {
       cout << t[i];
     }
   return 0;
}
из дополнительного модуля в основной.
Подключил модуль (вроде) успешно, а вот прототип правильно составить не могу. (
Помогите пожалуйста. )

Добавлено через 10 минут
Пытаюсь так:
C++
1
int test(char t[]);
Но получаю:
Код
[Linker Error] Unresolved external 'test(char *)' referenced from C:\...<Тут мои папки>...\UNIT1.OBJ
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2012, 19:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подключение дополнительных модулей и работа с функциями из этих модулей (C++):

подключение модулей - C++
Подскажите пожалуйста, можно ли в программу на Си подключить модуль на Python?

Подключение собственных модулей - C++
Добрый день! Пишу свой интерпретируемый язык на с++, лексер и парсер уже готовы. Хотел реализовать конструкцию подключения модулей, типа ...

Подключение модулей на выбор в рантайме - C++
Мне нужно сделать примерно следующее: Имеется программа и 2 модуля, мне нужно чтобы подключался один из модулей, по-выбору. Т.е. допустим...

Подключение модулей или предварительные объявления - C++
Доброго времени суток! Недавно начал знакомиться с библиотекой QT. Обзавелся несколькими книгами и при беглом прочтении столкнулся с...

Сделать масивом.Дано 5 действительных чисел. Вычислить сумму квадратных корней модулей этих чисел - C++
Дано 5 действительных чисел. Вычислить сумму квадратных корней модулей этих чисел

Работа с одномерными массивами. Вычислить сумму квадратов разностей корней из модулей действительных чисел - C++
Дано 8 действительных чисел. Вычислить сумму квадратов разностей корней из модулей действительных чисел.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 539
16.03.2012, 19:40 #2
Вроде как массивы передавать в функцию нельзя, вместо этого используйте указатель, и, если надо, количество элементов в массиве

Добавлено через 2 минуты
+ этот код у вас вряд ли будет работать:
C++
1
2
3
4
5
6
 int i;
     while (t[i]!=0)
     {
       cout << t[i];
     }
   return 0;
Переменная неинициализована, и не изменяет своего значения, вам нужно что-то типа:
C++
1
2
3
4
5
6
7
 int i = 0;
     while (t[i]!=0)
     {
       cout << t[i];
       i++;
     }
   return 0;
HeHyA4o
1 / 1 / 0
Регистрация: 17.10.2011
Сообщений: 46
16.03.2012, 20:04  [ТС] #3
Цитата Сообщение от hepr Посмотреть сообщение
Вроде как массивы передавать в функцию нельзя, вместо этого используйте указатель, и, если надо, количество элементов в массиве

Добавлено через 2 минуты
+ этот код у вас вряд ли будет работать:
C++
1
2
3
4
5
6
 int i;
     while (t[i]!=0)
     {
       cout << t[i];
     }
   return 0;
Переменная неинициализована, и не изменяет своего значения, вам нужно что-то типа:
C++
1
2
3
4
5
6
7
 int i = 0;
     while (t[i]!=0)
     {
       cout << t[i];
       i++;
     }
   return 0;

Спасибо! i++ проглядел )

Помогите с указателями...
Получилась такая функция:
C++
1
2
3
4
5
6
7
8
9
10
int test(&char t[])
{
   int i = 0;
     while (t[i]!=0)
     {
       cout << t[i];
       i++;
     }
   return 0;
}
Прототип такой:
C++
1
int test(char* t[]);
Скомпилировал без проблем! А вот использовать не получается (
Нужно передать указатель на 0-ой элемент массива, я пытаюсь это сделать так:
C++
1
2
3
  char line[128];
  cin.getline(line,128);
  test(&line);
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
16.03.2012, 20:11 #4
Вам надо:
C++
1
2
3
4
5
6
7
8
9
10
int test(char *t)
{
   int i = 0;
     while (t[i]!=0)
     {
       cout << t[i];
       i++;
     }
   return 0;
}
и
C++
1
int test(char* t);
и есть её прототип.

* Указатель на 0 элемент массива - его имя.
HeHyA4o
1 / 1 / 0
Регистрация: 17.10.2011
Сообщений: 46
16.03.2012, 20:48  [ТС] #5
Цитата Сообщение от Whiteha Посмотреть сообщение
Вам надо:
C++
1
2
3
4
5
6
7
8
9
10
int test(char *t)
{
   int i = 0;
     while (t[i]!=0)
     {
       cout << t[i];
       i++;
     }
   return 0;
}
и
C++
1
int test(char* t);
и есть её прототип.

* Указатель на 0 элемент массива - его имя.
Использовать её так и не получилось:
C++
1
test(&line);
Что неверно?
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
16.03.2012, 20:55 #6
Вероятно из-за test(&line);
Надо:
C++
1
test(line);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2012, 20:55
Привет! Вот еще темы с ответами:

Сумма модулей - C++
Сумму модулей элементов массива, расположенных после мини-мального по модулю элемента.

Компановка модулей - C++
Здравствуйте. Разделил программу на модули. При связывании компиль пишет: In function `main': undefined reference to...

Компиляция модулей - C++
При компиляции модулей вылезла такая ошибка (смотрите на скриншот). Пытался решить проблему - не вышло. Подскажите, что не так в модулях? ...

Взаимная зависимость модулей - C++
// module.h #ifndef module #define module #include &quot;module 2.h&quot; struct A { B b;


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

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

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