为什么我的构造函数没有被调用

Why my constructor not getting called

本文关键字:调用 我的 构造函数 为什么      更新时间:2023-10-16
Class A
{
public:
    A()
    {
       cout << "constructor called";
    }
};
int main()
{
  A obj;     // constructor getting called
  A obj1();   // constructor not getting called
}

当我实例化obj对象时,我的构造函数被调用。但是当我实例化 obj1 时,我的构造函数没有被调用。

我想知道其中的原因。

A obj1();实际上不创建任何对象,它是一个函数声明。

这里应该避免(),因为编译器无法判断你是要创建一个A对象还是声明一个返回A对象的obj1函数。