在模板函数C ++中键入Casting

时间:2015-04-07 03:07:06

标签: c++ templates types casting typeconverter

人。在潜伏太多线程后,无法找到我遇到的问题的答案,我决定最后发布一个我自己的问题。我正在为学校做作业,对于某个特定部分,它要求我编写一个模板函数,它将采用不同类型的两个参数,然后交换参数的内容。鉴于这是学校的任务,我不希望任何人给我答案。毕竟,这确实会破坏目的并通过它来学习它。但任何能让我朝着正确方向前进的提示都会非常感激。

这基本上就是我现在正在使用的东西,而且我几乎被卡住了。据我所知,没有错误,因为我可以毫无问题地构建和运行它。我只是在输出中得到了不稳定的值。在赋值中,有一个提示说使用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”。

0 个答案:

没有答案