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{};