c++ - 假设有一个名为A的类,传递下面两个对象有什么区别: (a) A obj1 and (b) A obj1()?

标签 c++ default-constructor default-arguments

<分区>

我的问题是关于 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/

相关文章:

c++ - 为什么没有默认构造函数就不能编译?

c++ - C++中的默认参数与重载

c++ - 从 C++ 中的偏移量覆盖二进制文件的字节

c++ - 编译器生成的构造函数

c++ - 分数计划 - 返回等问题

java - 默认构造函数是好是坏? Checkstyle和PMD在这里是相反的

c++ - 重载运算符 delete 可以有默认参数吗?

C++ 是否可以使用类变量作为默认参数

c++ - 线程完成后 boost::thread_group 永远挂起

c++ - 如何判断 stderr 是否已在 Windows 中重定向?