正确构造的物体?

时间:2013-10-15 08:56:11

标签: c++ object constructor initialization

我想知道我正在构建的这种抽象数据类型是否正确构建。

我的构造函数:

   IntSet();                                 
   IntSet(int a, int = -1, int = -1, int = -1, int = -1);    

在main中创建的IntSet:

IntSet A();
IntSet B;

现在A在5值构造函数中构造,B在空构造函数中构造。这是正确的,还是应该在空构造函数中构造A?

谢谢!

2 个答案:

答案 0 :(得分:1)

IntSet A(); 

这一行声明一个函数,它不带参数并返回IntSet类型。它没有定义对象。它也被称为most vexing parse

IntSet B;

这一行通过调用默认构造函数(带0参数的构造函数)来定义对象B

答案 1 :(得分:1)

现在,B是默认构造的。

A根本不是对象的定义。它是一个名为A的函数的声明,它不带任何参数并返回IntSet。谷歌搜索“最令人烦恼的解析”将提供更多的解释和讨论。