人。在潜伏太多线程后,无法找到我遇到的问题的答案,我决定最后发布一个我自己的问题。我正在为学校做作业,对于某个特定部分,它要求我编写一个模板函数,它将采用不同类型的两个参数,然后交换参数的内容。鉴于这是学校的任务,我不希望任何人给我答案。毕竟,这确实会破坏目的并通过它来学习它。但任何能让我朝着正确方向前进的提示都会非常感激。
这基本上就是我现在正在使用的东西,而且我几乎被卡住了。据我所知,没有错误,因为我可以毫无问题地构建和运行它。我只是在输出中得到了不稳定的值。在赋值中,有一个提示说使用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;
}
对于这里的给定变量,它只读出第二个cout线的“结果:笑脸 49”。