这是构造函数的一种类型吗

Is this a type of constructor?

本文关键字:一种 类型 构造函数      更新时间:2023-10-16

我翻阅了我的一本c++书,发现了这个代码的例子

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

我理解构造函数和重载之类的东西,但底部的这个类类型的原型呢。奇怪的是,这本书没有提供任何信息,只有图表。但我只是想知道,函数类型属于类意味着什么。我确信我理解这个参数,因为它似乎是对该类类型对象的常量引用。但是,为什么/如何声明这样的函数,这是否意味着它返回类?哈哈,我是编程新手,如果有人能帮我理解这一点,我将不胜感激。

只有当函数具有类名时,才将其称为构造函数。类型为CDistance的函数表示该函数返回类的对象。因此它不是构造函数

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

  • 它们没有返回类型
  • 它们的名称与类名相同
  • 它们不能是const限定的

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

您的意思是:CDistance add(const CDistance&) const;吗?

这是详细信息:

  1. 参数中CCD_ 4的目的是确保原始对象不能通过其引用而更改。。。constafter参数是为了确保该方法不能更改其主体中的任何内容。。

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

CDistance tempObj = theObj.add (param_obj);

希望帮助…:D

它很有用:

C距离D1=C距离();

C距离D2=C距离();

C距离D3=C距离();

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