假设有一个名为 A 的 class。传递以下两个对象有什么区别:(a) A obj1 和 (b) A obj1()?

Let there be a class named A. What is the difference between passing the following two objects: (a) A obj1 and (b) A obj1()?

我的问题是关于 C++ 中的默认构造函数。 分别通过上面两个对象后,发现 (a) obj1 被检测为默认构造函数,并且定义它的构造函数被执行。 (b) obj1() 未被检测为默认构造函数。它与 none 个构造函数匹配。

在这两种情况下,都没有传递参数。那么为什么只有 (a) 设置为默认构造函数而不是第二个,即 (b)。

Leta there be a class named A. What is the difference between passing the following two objects: (a) A obj1 and (b) A obj1()?

区别在于A obj1; 声明了一个类型A 的对象obj1。虽然 A obj1(); 声明了一个不带参数的函数 obj1 和 returns 一个 A - 它不创建对象。