【问题标题】:What is the difference between object and object() in C++ [duplicate]C ++中的object和object()有什么区别[重复]
【发布时间】:2013-02-09 07:45:31
【问题描述】:
class A {
  public:
    A() { cout << "Constructor\n"; }  // (1) default constructor
};

A obj;                                // (2) instantiating obj

A obj();                              // (3) 

实例化objobj() 有什么区别? obj 调用上面提到的默认构造函数(1)。 obj() 会调用哪个构造函数?

【问题讨论】:

  • @谢谢大家的链接..

标签: c++ constructor instantiation most-vexing-parse


【解决方案1】:

A obj(); 声明了一个名为obj 的函数,该函数不接受任何参数并返回一个A。它根本没有声明A 对象。

由于A obj(); 没有声明A 对象,因此不会导致任何构造函数调用。

【讨论】:

  • 哦那样。谢谢你;-)。
【解决方案2】:

第二个被声明为一个函数。函数的名称是 obj。它不需要任何论据。它返回类型 A 的对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 2011-08-12
    • 2012-03-10
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多