c++ - 我如何制作原始类型 C++ 的拷贝?

标签 c++ visual-c++ g++

我想我想复制一个常量原始类型的值,并赋给一个引用。我想这样做而不是让它进入堆,这可能吗?

做这样的事情:

const unsigned long rawnan[2]={0xffffffff, 0x7fffffff};
const double NaN = *( double* )rawnan;
    Class{
        float &_f;
        inline Class( ):_f(float(NaN)){
        }
    }

我想知道是否:

Class{
    float &_f;
    inline Class( float F):_f(float(F)){
    }
}

如果我实际上复制了变量 F 或没有(我知道可以直接引用 F 但我认为它的作用域将在构造函数的末尾结束,那么我需要复制它的值。)

(如果代码编译不通过,那是因为是真实代码的伪代码,基础问题很重要,希望能看懂)

(我这样做了 NaN 的定义,因为这是迄今为止我所知道的最好的方法,并且与 VC++ 和 G++ 兼容)

最佳答案

方法如下:

float first = 3.14159265358979324f;
float second = first;

关于c++ - 我如何制作原始类型 C++ 的拷贝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15761433/

相关文章:

c++ - 通过访问容器的父容器来使用 sigc::mem_fun

c++ - 如何将全局变量传递给 C++ 中的函数?

c++ - Socket SO_RCVTIMEO超时时间是C++/VC++中设置值的两倍

c++ - 如何实现无符号 33 位整数类型

c++ - 带有 std::vector 的模板 typedef 具有自定义分配器

c++ - 内存对齐结构 - 对齐大小等于最大成员大小

c++ - 初始化C++基类,而无需两次键入整个基类类型

C++ 类/vector 指针问题

C++ 头文件 #define Function(x) ('ABC\0' | ('0' +(x &0xFF)))

C++接口(interface)编译