ребята. Спрятавшись за слишком большим количеством тем, так как я не смог найти ответ на мою проблему, я решил наконец опубликовать свой вопрос. Я работаю над заданием для школы, и для определенной части он просит меня написать шаблонную функцию, которая будет принимать два параметра разных типов, а затем менять их содержимое. Учитывая, что это задание для школы, я не ожидаю, что кто-нибудь просто даст мне ответ. В конце концов, это побеждает цель и работает через нее, чтобы выучить ее. Но любые намеки, чтобы направить меня в правильном направлении, будут высоко оценены.
Это в основном то, с чем я сейчас работаю, и я почти застрял. Насколько я могу судить, ошибки нет, так как я могу собрать и запустить ее без проблем. Я просто получаю сомнительные значения в выводе. В назначении была подсказка, в которой говорилось об использовании static_cast, поэтому это и есть причина. Я не уверен, что есть ли лучший способ для меня использовать типы при преобразовании, или причина, по которой я получаю такие странные результаты.
template<class T1, class T2>
void swap_values(T1& variable1, T2& variable2)
{
T1 temp;
cout << "Originals: " << variable1 << " " << variable2 << endl;
temp = variable1;
variable1 = static_cast<T1>(variable2);
variable2 = static_cast<T2>(temp);
cout << "Results: " << variable1 << " " << variable2 << endl;
}
int main()
{
char a = '1';
int b = 1;
swap_values(a, b);
system("pause");
return 0;
}
Для заданных переменных здесь просто зачитывается «Результаты: улыбающееся лицо 49 «для второй линии.
Задача ещё не решена.