花括号对空构造函数是否重要?
这个问题在这里已经有了答案:
他们不一样。 {}
代表一个规则的函数体,并且使之前的函数定义。
foo(void){}; // function definition
foo(void); // function declaration
是的,他们有。 第二个将生成undefined reference to foo::foo
(除非在其他地方定义)。 如果您可以使用C ++ 11或更高版本,则可以使用
foo()=default;
定义一个编译器生成的构造函数
这些括号声明了一个空的内联构造函数。 在那种情况下,对于它们来说,构造函数确实存在,它只不过是构造函数不会隐含的。
在第二种情况下,如果没有它们,编译器会期望其他地方的实现 - 例如.cpp文件。
链接地址: http://www.djcxy.com/p/40619.html