我只是碰到了一些代码,我相信我从未见过下面显示的语法。
struct A {
int m_int;
A (int a = int {}) : m_int(a) {}
};
因此,很明显,构造函数可以按值接受整数,即,int a
其后是赋值运算符和type int
,并且右括号和右括号都关闭。我无法解读后半部分(int {}
)。什么是int a = int {}
?。请指导我找到更多有关它的信息。我该如何解决?
谢谢Gaurav
在构造函数中,您将定义一个接受整数和默认构造函数的构造函数。请记住,为其所有参数提供默认参数的构造函数也定义了默认构造函数。
您可以这样写:
A(int a = 0); // a是默认参数。
在您的示例中:
A (int a = int {});//
该参数a
是从临时整数初始化的默认参数(未分配),该临时整数是值初始化的,因为它是整数,然后将其值初始化为0,然后用于初始化参数a。(一个是它的副本)。编译器优化代码以在许多情况下删除副本。
A (int a = int {5.6});// error
A (int a = int(5.6));// truncated to 5
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句