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

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

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

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

30.07.2011, 16:56. Просмотров 1053. Ответов 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. Как это решить?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2011, 16:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Аргументы функции (C++):

Аргументы функции: что значит "большие" и "небольшие" аргументы? - C++
Здравствуйте! Всем доброго дня! Растолкуйте пожалуйста! Что значит большие и небольшие?

Аргументы функции - C++
Как правильно описать аргументы в некоторой функции void Func(int* a, int* b) { //... } Чтобы можно было вызывать её...

Аргументы функции - C++
Добрый вечер! Сразу по делу: int func(char s) {....} int main { char s; // s-символьная строка func(s); }

Аргументы функции - C++
Программа должна вычислять x-e число Фибоначчи по mod y. Вылетает ошибка, что передано слишком мало аргументов. Объясните недалекому...

Аргументы у функции - C++
void String(int i, int j, int N, double a) И компилятор студии 2010 выдает следующие ошибки: 1>Hello.cpp(48): error C2057: expected...

Аргументы функции - C++
Привет! Как поступить в следующей ситуации. for (int i = 0; i < 16; i++) { func(str1, str2); .... } дело в том...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 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);
а вообще немешало бы показать как вы вызываете
1
William Blake
10 / 10 / 2
Регистрация: 09.08.2010
Сообщений: 278
30.07.2011, 17:03  [ТС] #3
Там оператор switch, сравнивает по значению специальной переменной. В меню игроку доступны некоторые кнопки, кнопка телепортации имеет значение 38.
case 38:
Teleport(pPlayer, Coord[5]);
break;
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 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 строчки о ситуации ничего не говорят
1
grizlik78
Эксперт С++
1911 / 1443 / 112
Регистрация: 29.05.2011
Сообщений: 3,001
30.07.2011, 17:09 #5
Цитата Сообщение от William Blake Посмотреть сообщение
Teleport(pPlayer, Coord[5]);
здесь в функцию передаётся один элемент, к тому же с недопустимым индексом.
Если надо передать весь массив, то это так:
C++
1
Teleport(pPlayer, Coord);
1
William Blake
10 / 10 / 2
Регистрация: 09.08.2010
Сообщений: 278
30.07.2011, 17:13  [ТС] #6
Все, понял, что ступил.
0
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
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);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2011, 17:58
Привет! Вот еще темы с ответами:

Аргументы Функции - C++
Привет всем.Программа такова по заданному TXT файлу идет поиск строки и эта строка передается в качестве аргумента функции...

Аргументы функции по умолчанию - C++
Допустим у нас имеется некоторая функция, некоторые аргументы которой специфицируются как аргументы, допускающие значения по умолчанию. ...

Аргументы функции по умолчанию - C++
Написать функцию, которая принимает два параметра типа int: высоту и ширину. Данная функция рисует на экране прямоугольник, размер которого...

Аргументы функции по умолчанию - C++
Помогите. Вот код программы #include <iostream> using namespace std; #include <cstdlib> #include <cstring> struct stringy{ ...


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

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

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