C++ 构造问题
可能重复:C++ 构造问题,c++,C++,可能重复: 这是我编写的代码,我不明白构造函数包obj2()上发生了什么;输出时仅显示值4(机组obj1(4))和2(机组obj3(2)) #包括 使用名称空间std; 类包 { 私人: int值; 公众: 包() { cout这不声明对象: Package obj2(); 信不信由你,它声明了一个函数,返回一个包对象。它被称为“the.”行 Package obj2(); 需要 Package obj2; 更多信息 或者,采取另一种方式(从谷歌缓存来看,real site已经关闭,对
这是我编写的代码,我不明白构造函数包obj2()上发生了什么;输出时仅显示值4(机组obj1(4))和2(机组obj3(2))
#包括
使用名称空间std;
类包
{
私人:
int值;
公众:
包()
{
cout这不声明对象:
Package obj2();
信不信由你,它声明了一个函数,返回一个包
对象。它被称为“the.”行
Package obj2();
需要
Package obj2;
更多信息
或者,采取另一种方式(从谷歌缓存来看,real site已经关闭,对此持保留态度,它提出了一些好的观点,但尽最大努力让它们听起来比实际情况更糟):
如果您使用的是C++11,并且想要解决“最麻烦的解析”问题,您可以替换
Package obj2();
与
这是C++11的一部分,它主要是为了解决这个问题而设计的。我给出了原因,你给出了解决方法!调用默认值时不需要()
contructor@EmmanuelN这不仅仅是“不需要”,而是“不得使用”。那么他如何初始化构造函数参数呢?@David default constructor call根据定义没有任何参数(默认构造函数可以使用参数,只要所有参数都有默认值)。
Package obj2();
Package obj2{};