假设有一个名为 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
- 它不创建对象。
我的问题是关于 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
- 它不创建对象。