<分区>
我的问题是关于 C++ 中的默认构造函数。 分别通过上面两个对象后,发现 (a) obj1 被检测为默认构造函数,并且定义它的构造函数被执行。 (b) obj1() 未被检测为默认构造函数。它与所有构造函数都不匹配。
在这两种情况下,都没有传递参数。那么为什么只有 (a) 设置为默认构造函数而不是第二个,即 (b)。
<分区>
我的问题是关于 C++ 中的默认构造函数。 分别通过上面两个对象后,发现 (a) obj1 被检测为默认构造函数,并且定义它的构造函数被执行。 (b) obj1() 未被检测为默认构造函数。它与所有构造函数都不匹配。
在这两种情况下,都没有传递参数。那么为什么只有 (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
,它不接受任何参数并返回一个 A
- 它不会创建对象。
关于c++ - 假设有一个名为A的类,传递下面两个对象有什么区别: (a) A obj1 and (b) A obj1()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50089745/