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

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

Войти
Регистрация
Восстановить пароль
 
William Blake
10 / 10 / 2
Регистрация: 09.08.2010
Сообщений: 266
#1

Аргументы функции - C++

30.07.2011, 16:56. Просмотров 993. Ответов 6
Метки нет (Все метки)

Вопрос на счет аргументов функции в С++. есть такая функция:
Код
void Teleport(Player* pPlayer, float array[5])
    {
	int i = 0;
        pPlayer->TeleportTo(massive[i], massive[i+1], massive[i+2], massive[i+3], massive[i+4]);
    }
(pPlayer является экземпляром заранее реализованного объекта, он обозначает игрока, TeleportTo реализована заранее, принимает пять аргументов (uint32 mapID, float X, float Y, float Z, float Orientation), но это тут значения не имеет, просто этой функцией можно телепортировать игрока в игровом пространстве некоторой игры.)
Есть массив с координатами:
Код
float Coord[5] = {0, -8899.667969F, 564.989441F, 92.821983F, 0.630244F};
При вызове функции Teleport(pPlayer, Coord[]) появляется ошибка:
(Аргумент типа "float" несовместим с параметром типа "float *" )
Написал подобное на C#, ошибка тоже появляется, но уже написана по-другому
(Аргумент "1": преобразование типа из "float" в "float[]" невозможно)
Почему в обоих случаях она возникает? Ведь массив имеет тип float. Как это решить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.07.2011, 17:00     Аргументы функции #2
C++
1
2
3
4
5
Player pPlayer;
Teleport(&pPlayer, Coord);
//а можно и так, но все зависит от того как у вас оно вызываеться и создаеться
Player* pPlayer = new Player();
Teleport(pPlayer, Coord);
а вообще немешало бы показать как вы вызываете
William Blake
10 / 10 / 2
Регистрация: 09.08.2010
Сообщений: 266
30.07.2011, 17:03  [ТС]     Аргументы функции #3
Там оператор switch, сравнивает по значению специальной переменной. В меню игроку доступны некоторые кнопки, кнопка телепортации имеет значение 38.
case 38:
Teleport(pPlayer, Coord[5]);
break;
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.07.2011, 17:04     Аргументы функции #4
Цитата Сообщение от William Blake Посмотреть сообщение
case 38:
Teleport(pPlayer, Coord[5]);
break;
вы можете показать больший кусок кода, который включает в себя создание pPlayer и Coord[5], ваши 3 строчки о ситуации ничего не говорят
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,978
30.07.2011, 17:09     Аргументы функции #5
Цитата Сообщение от William Blake Посмотреть сообщение
Teleport(pPlayer, Coord[5]);
здесь в функцию передаётся один элемент, к тому же с недопустимым индексом.
Если надо передать весь массив, то это так:
C++
1
Teleport(pPlayer, Coord);
William Blake
10 / 10 / 2
Регистрация: 09.08.2010
Сообщений: 266
30.07.2011, 17:13  [ТС]     Аргументы функции #6
Все, понял, что ступил.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2011, 17:58     Аргументы функции
Еще ссылки по теме:

C++ Аргументы Функции
C++ Аргументы функции main
C++ Аргументы функции: что значит "большие" и "небольшие" аргументы?
Аргументы функции C++
C++ Аргументы функции

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

Или воспользуйтесь поиском по форуму:
ValeryLaptev
Эксперт С++
1017 / 796 / 48
Регистрация: 30.04.2011
Сообщений: 1,617
30.07.2011, 17:58     Аргументы функции #7
Цитата Сообщение от William Blake Посмотреть сообщение
Там оператор switch, сравнивает по значению специальной переменной. В меню игроку доступны некоторые кнопки, кнопка телепортации имеет значение 38.
case 38:
Teleport(pPlayer, Coord[5]);
break;
Вот это:
C++
1
Teleport(pPlayer, Coord[5]);
и есть ошибка. Ты передаешь ОДИН элемент массива, а не массив...
Надо так:
C++
1
Teleport(pPlayer, Coord);
Yandex
Объявления
30.07.2011, 17:58     Аргументы функции
Ответ Создать тему
Опции темы

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