在C ++中创建非指针类型的对象

时间:2013-09-16 11:40:02

标签: c++

如果我有如下课程。

class A {
int data;
};

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

Case1和Case2有什么区别?

3 个答案:

答案 0 :(得分:9)

A b();

它没有定义一个对象,它声明了一个返回类型A的函数,它也被称为most vexing parse

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

案例1:

    A a; // Case1: calling explicit Default constructor

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

案例2:

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

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

希望它有所帮助。