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

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

Войти
Регистрация
Восстановить пароль
 
WennY
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 131
#1

Шаблон - C++

21.04.2013, 22:07. Просмотров 336. Ответов 5
Метки нет (Все метки)

Доброго времени суток. Есть две функции:
C++
1
2
void mouseMove( int x, int y, int speed = 1, int xMaxOffset = 0, int yMaxOffset = 0 );
void mouseMove( int x, int y, int xMaxOffset = 0, int yMaxOffset = 0, int speed = 1 );
Хочется под шаблон подогнать, но не могу понять: как потом отличать параметры, коли они все int? И, если не сложно, можно иллюстрирующий пример? Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2013, 22:07     Шаблон
Посмотрите здесь:

C++ Шаблон
C++ Шаблон
C++ шаблон
Шаблон C++
шаблон функции C++
C++ Шаблон класса.
Шаблон класса C++
C++ Шаблон set
C++ Шаблон
Шаблон с ограничением C++
Шаблон функции C++
шаблон класса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.04.2013, 23:32     Шаблон #2
WennY, Никак. А заради чего две функции с одинаковыми параметрами, но разным порядком? Можно заюзать именованные параметры из буста.
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
21.04.2013, 23:45     Шаблон #3
Цитата Сообщение от WennY Посмотреть сообщение
void mouseMove( int x, int y, int speed = 1, int xMaxOffset = 0, int yMaxOffset = 0 );
void mouseMove( int x, int y, int xMaxOffset = 0, int yMaxOffset = 0, int speed = 1 );
Что-то я не понял -- у вас две функции отличаются порядком следования аргументов?! Это работает вообще?

Цитата Сообщение от WennY Посмотреть сообщение
Хочется под шаблон подогнать
"Под шаблон" имеет смысл "подгонять" в том случае, если тип передаваемых значений неизвестен. В вашем случае все параметры, похоже, целочисленные и смысла в шаблоне просто нет.
homer4ek
1 / 1 / 0
Регистрация: 21.04.2013
Сообщений: 29
21.04.2013, 23:58     Шаблон #4
Цитата Сообщение от WennY Посмотреть сообщение
Доброго времени суток. Есть две функции:
C++
1
2
void mouseMove( int x, int y, int speed = 1, int xMaxOffset = 0, int yMaxOffset = 0 );
void mouseMove( int x, int y, int xMaxOffset = 0, int yMaxOffset = 0, int speed = 1 );
Хочется под шаблон подогнать, но не могу понять: как потом отличать параметры, коли они все int? И, если не сложно, можно иллюстрирующий пример? Спасибо
знакомы с перегрузкой функций??
это где названия одинаковые а типы разные, просто при вызове указывать тип и все)
WennY
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 131
22.04.2013, 00:03  [ТС]     Шаблон #5
Цитата Сообщение от ForEveR Посмотреть сообщение
А заради чего две функции с одинаковыми параметрами, но разным порядком?
Ну, например иногда нужно после двух обязательных указать только speed, а иногда - все, кроме как раз спида. Вот я решил упростить жизнь юзерам функции.. В целом все понятно, спасибо. Я просто боялся, что чего-то недопер в шаблонах, потому решил перестраховаться.
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
22.04.2013, 00:44     Шаблон #6
Цитата Сообщение от homer4ek Посмотреть сообщение
знакомы с перегрузкой функций??
это где названия одинаковые а типы разные, просто при вызове указывать тип и все)
Знаком. Перегрузка это действительно, когда названия одинаковые, а типы параметров разные.

В вашем примере две функции, обе принимают ровно по пять целых чисел. Это не компилируется, ибо redefinition.
Yandex
Объявления
22.04.2013, 00:44     Шаблон
Ответ Создать тему
Опции темы

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