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

Передача структуры в функцию - C++

Восстановить пароль Регистрация
 
TamaGOch
9 / 9 / 0
Регистрация: 11.12.2012
Сообщений: 152
21.11.2013, 10:37     Передача структуры в функцию #1
структура к примеру:
C++
1
2
3
4
5
struct GamePoint
{
int x;
int y;
};
Функция допустим вот такая:
C++
1
2
3
4
void Func (GamPoint val)
{
/***/
}
Можно делать так:
C++
1
2
GamePoint tmp = {9, 10};
Func (tmp);
Но хочется сделать что-то подобное этому:
C++
1
Func ( GamePoint {9, 10} );
естественно последний вариант не проходит, но есть желание делать так, не создавая переменную а делать такое вот приведение. Кто-нибудь знает, как это сделать корректно?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 10:37     Передача структуры в функцию
Посмотрите здесь:

Передача в функцию элементов структуры C++
Передача структуры в функцию C++
Передача структуры в функцию C++
Передача структуры в функцию C++
Передача структуры в функцию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
21.11.2013, 10:47     Передача структуры в функцию #2
Вам надо завести конструктор в структуре так:
C++
1
2
3
4
5
6
struct GamePoint
{
    int x;
    int y;
    GamePoint(int _x, int _y) : x(_x), y(_y){}
};
И тогда будете вызывать функцию так: Func ( GamePoint(9, 10) );

Добавлено через 1 минуту

Не по теме:

приятно помогать людям, которые интересуются языком, а не требуют решить за них курсовую

LuxArt
33 / 20 / 2
Регистрация: 14.11.2013
Сообщений: 85
21.11.2013, 11:08     Передача структуры в функцию #3
Цитата Сообщение от TamaGOch Посмотреть сообщение
Но хочется сделать что-то подобное этому:
C++
1
Func ( GamePoint {9, 10} );
Цитата Сообщение от newbie666 Посмотреть сообщение
Вам надо завести конструктор в структуре так:
Цитата Сообщение от newbie666 Посмотреть сообщение
И тогда будете вызывать функцию так: Func ( GamePoint(9, 10) );
Извините, а в чем же смысл всего этого? Дальше то что делать с GamePoint(9, 10)? Переменной как таковой нет к ней нельзя обратиться по имени.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
21.11.2013, 11:10     Передача структуры в функцию #4
Цитата Сообщение от LuxArt Посмотреть сообщение
Дальше то что делать с GamePoint(9, 10)? Переменной как таковой нет к ней нельзя обратиться по имени.
Переменную звать val:
C++
1
2
3
4
void Func (GamPoint val)
{
/***/
}
Yandex
Объявления
21.11.2013, 11:10     Передача структуры в функцию
Ответ Создать тему
Опции темы

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