c ++构造函数的差异

poy*_*poy 0 c++ constructor

如果我有以下课程:

class A{
private:
  int x;
public:
  A(){
    x = 5;
  }
};
Run Code Online (Sandbox Code Playgroud)

这两个声明之间的区别是什么?

A a;
Run Code Online (Sandbox Code Playgroud)

A a();
Run Code Online (Sandbox Code Playgroud)

谢谢.

int*_*jay 8

A a;
Run Code Online (Sandbox Code Playgroud)

这将创建一个类型的对象A并调用默认构造函数.

A a();
Run Code Online (Sandbox Code Playgroud)

这声明了一个调用的函数a,它返回一个类型的对象A.

  • 也称为最烦恼的解析. (2认同)