小编dnf*_*nfs的帖子

在进行类型转换时,Visual Studio不会创建临时对象?

我正在使用Visual Studio Express 2013,并且在尝试学习C++中的不同内容时有点愚弄.

我在编译器中偶然发现了一个有趣的错误,当显式地将类型转换为与引用相同的类型时,它似乎不会创建临时对象.

#include <iostream>

using namespace std;

int main()
{
    int number; // float number;
    number = 2;

    const int& plainref_i = number;
    const int& recastref_i = (int)number; // this goes wrong if number is int
    const float& plainref_f = number;
    const float& recastref_f = (float)number; // this goes wrong if number is float

    number = 3;

    std::cout << plainref_i << "\n";
    std::cout << recastref_i << "\n";
    std::cout << plainref_f << "\n";
    std::cout << recastref_f << "\n"; …
Run Code Online (Sandbox Code Playgroud)

c++ casting const-reference temporary-objects visual-studio-2013

7
推荐指数
1
解决办法
303
查看次数