这是一种构造函数吗?

时间:2013-12-05 13:24:44

标签: c++ function class constructor

我正在查看我的c ++书籍,并找到了这个代码示例

class CDistance
{
private:
    int feet, inches;
public:
    CDistance();
    CDistance(int, int);
    ~CDistance();
    void setDist();
    void printDist() const;
    CDistance add(const CDistance&) const;
};

我理解构造函数和重载等等,但是这个类型的底部原型怎么样。奇怪的是,这本书没有给出任何信息,只是图表。但我只是想知道,函数类型属于类是什么意思。我很确定我理解参数,因为它似乎是对该类类型的对象的常量引用。但为什么/如何声明这样的函数,是否意味着它返回类?大声笑,我是编程的新手,如果有人能帮助我理解这一点,我真的很感激。

4 个答案:

答案 0 :(得分:4)

只有当函数具有类的名称时,才将其调用为构造函数。类型CDistance的函数意味着该函数返回该类的对象。所以它不是构造函数

答案 1 :(得分:2)

构造函数在某些方面与普通成员函数不同:

  • 他们没有返回类型
  • 他们的名字与班级名称相同
  • 他们不能是合格的

这使得函数CDistance::add不是构造函数,因为它在所有3上都失败了。

答案 2 :(得分:1)

你的意思是:CDistance add(const CDistance&) const;

这是详细信息:

  1. 参数中const的目的是确保不得通过其引用更改原始对象... const after参数是为了确保方法不能改变其体内的任何内容。

  2. 该函数返回CDistance的对象,因此执行后您可以使用新对象来获取它,如例:

  3. CDistance tempObj = theObj.add (param_obj);

    希望有帮助...:D

答案 3 :(得分:0)

很有用:

CDistance D1 = CDistance();

CDistance D2 = CDistance();

CDistance D3 = CDistance();

D3.add(D2.add(D1));