float&operator 详细与float
float& operator in detail vs. float
我正在尝试使用float&C++中的运算符。我刚开始学习这种语言,所以我想知道float和float&C++中的运算符。例如,当我写作时,
float var1;
float& var2=var1;
cout<<&var1<<endl<<&var2;
那么var1和var2的输出都是相同的地址。但如果是这样的话,那么var1和var2是相同的变量,也就是说,我指责同一块内存使用了两个不同的引用名称。那么var1和var2之间到底有什么区别呢?它们是一样的吗?同时,为了制作变量的复写本,我们是否使用float&?
在函数上下文中的差异更容易理解。float-按值传递浮动&-通过引用传递(不分配新内存,指向与原始内存相同的值)
float var1; float& var2=var1;
的意思是生成一个具有两个名称的浮点变量,var1
和var2
。
除了decltype
的结果外,它与float var2; float &var1 = var2;
完全相同
要制作副本,您需要编写:float var3 = var1;
相关文章:
- 为什么 std::optional::operator=(U&&) 要求你是非标量类型?
- 'operator='已弃用:改用 QDir::setPath()
- 过载'operator new'如何导致无限循环?
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- 没有从阵列<float>到阵列<int>的可行转换
- 数组下标的类型"float*[float]"无效
- 与'operator='不匹配(操作数类型'String'且"void")
- SegFault 同时使用 std::string::operator+= 和函数作为参数
- 处理"no operator found"
- 如何编写 operator= 用于使用虚拟方法与非平凡成员的匿名联合
- 运算符重载:"operator+"必须采用零个或一个参数
- 使用 operator() 扩展 Eigen::EigenBase
- 没有合适的构造函数可以从"float"转换为"_D3DCOLORVALUE"
- 为什么我会收到此错误?无法将 {lb, ub} 从<大括号括起来的初始值设定项列表>转换为 float(**)(float*, int)
- 错误消息:使用"string* +="后"no match for 'operator+='"
- 错误:二进制'operator*' 'float'和'float[0]'类型的操作数无效
- 错误:二进制'operator*' 'int [1]'和'float'类型的操作数无效
- 错误:C++ 中二进制"operator%"类型"float"和"int"的操作数无效
- 错误:二进制'operator^' 'float'和'int'类型的操作数无效
- float&operator 详细与float