需要const引用的函数的整型输入
Integer input to a function that expects const reference
我不知道以前是否问过类似的问题,但我不知道如何搜索它,如果你提供我一个链接,重复标签是欢迎的:)
所以我问:
#include <iostream>
class H
{
public:
H(int x = 0)
{
std::cout << "constructor";
}
};
void func1(const H &a1)
{
}
int main()
{
func1(15);
return 0;
}
你能解释一下这是怎么回事吗?为什么它接受int值作为const引用,调用构造函数等?
谢谢。
H
有一个隐式转换构造函数,允许从int类型构造它,如下所示:
H h = 42;
当您将15
传递给func1
时,通过调用H(15)
创建一个临时的H
对象。这个临时函数在函数中使用。在c++中,可以将临时对象绑定到const
引用。
如果你想禁止这些隐式转换,让构造函数explicit
:
explicit H(int x = 0) { ... }
相关文章:
- C 字符串返回字符串的整数/双精度/长整型值
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- JNI 日期值转换问题,在C++中获取不同的长整型值
- 将长整型值打印为带有前导零的十六进制
- 为什么在传递长整型时调用具有两个双精度类型的参数的重载函数?
- 将整型常量映射到类型
- 将元组和整型实例合并到引用元组中
- 提升不良词法强制转换:将字符串转换为无符号长整型时,无法将源类型值解释为目标
- 为什么C++不允许两个同名的函数/类模板,区别仅在于非类型模板参数(整型)的类型?
- 将最小值整数转换为无符号长整型
- 如何将小端格式的QByteArray转换为无符号长整型
- 直接初始化无符号短整型的标准行为
- 无符号长整型和无符号 int 之间有什么区别,这 2 种类型应该如何在 c# 中封送?
- 使用整型变量检查用户输入是整型还是字符串
- 需要const引用的函数的整型输入
- 读取文件并将其作为整型数组输入
- 用户输入存储在整型数组中的值c++
- 如何正确输入整型,整型的向量,整型和字符串的向量
- c++中从输入字符串中分离字符串和整型