构造函数解析,默认构造函数和()

时间:2018-02-09 06:24:50

标签: c++ constructor

#include <iostream>


using namespace std;

 class A{
public:
    A(){
    cout << "Class A!";}
    };


 int main()
{
    A a();
}

上面的代码不会调用构造函数A :: A(),即使它们具有相同的输入参数(无)。但是,如果在main函数中,我从中删除括号         A a(); 它调用构造函数。 那么A a;A a();

之间的区别是什么?

我相信这里的问题非常相似甚至可能相同,但如果有人可以用更简单的术语解释我会非常感激。 Do the parentheses after the type name make a difference with new?

在任何情况下,

都会声明A a();曾经调用过构造函数吗?

无参数构造函数存在于c ++中,还是与默认构造函数相同?

1 个答案:

答案 0 :(得分:1)

使用

A a();

您将a声明为不带参数并返回A对象的函数。