C++ 需要常量引用的函数的整数输入

C++ 需要常量引用的函数的整数输入,c++,reference,constants,C++,Reference,Constants,我不知道以前是否有人问过类似的问题,但我不知道如何搜索,如果您提供链接,欢迎重复标签:) 所以我问: #include <iostream> class H { public: H(int x = 0) { std::cout << "constructor"; } }; void func1(const H &a1) { } int main() { func1(15); ret

我不知道以前是否有人问过类似的问题,但我不知道如何搜索,如果您提供链接,欢迎重复标签:)

所以我问:

#include <iostream>

class H
{
   public:
      H(int x = 0)
      {
         std::cout << "constructor";
      }
};

void func1(const H &a1)
{

}

int main()
{
    func1(15);
    return 0;
}
#包括
H类
{
公众:
H(整数x=0)
{

std::cout
H
有一个隐式转换构造函数,它允许从一个int构造它,如下所示:

H h = 42;

当您通过<代码> 15代码>函数>函数1 >代码>时,通过调用<代码> h(15)< /C> >创建临时的<代码> h < /C>对象。该临时函数用于函数中。在C++中,将临时对象绑定到<代码> const 参考文献> 如果要禁止这些隐式转换,请使构造函数显式

explicit H(int x = 0) { ... }

H
有一个隐式转换构造函数,它允许从如下所示的int构造它:

H h = 42;

当您通过<代码> 15代码>函数>函数1 >代码>时,通过调用<代码> h(15)< /C> >创建临时的<代码> h < /C>对象。该临时函数用于函数中。在C++中,将临时对象绑定到<代码> const 参考文献> 如果要禁止这些隐式转换,请使构造函数显式

explicit H(int x = 0) { ... }