2

如果我有如下课程。

class A {
int data;
};

A a; // Case1: calling explicit Default constructor
A b(); // Case2: Calling implicit default constructor

Case1和Case2有什么区别?

4

3 回答 3

9
A b();

它没有定义一个对象,它声明了一个返回类型的函数A,它也被称为最令人头疼的解析

于 2013-09-16T11:40:45.673 回答
2
A b(); // Case2: Calling implicit default constructor

评论不正确A b();是一个函数声明(该函数被调用b并返回一个类型的对象,A您打算稍后定义该函数)而不是一个对象定义。

于 2013-09-16T11:42:09.827 回答
0

情况1:

    A a; // Case1: calling explicit Default constructor

调用隐式默认构造函数,因为您没有在类中提供一个。

案例二:

   A b(); // Case2: Calling implicit default constructor

它是函数声明,说“b”是函数名,它不带参数并返回 A 对象。

希望能帮助到你。

于 2013-09-16T11:54:17.057 回答