【发布时间】:2013-12-05 13:24:44
【问题描述】:
我正在翻阅我的一本 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。
-
构造函数与类/结构命名相同,并且没有任何返回值。
-
@JoachimPileborg:我认为“返回类型”是更合适的术语。返回值是来自函数调用表达式的东西,构造函数不是函数。
-
@KerrekSB 真的吗?它们在第 12 节“特殊成员函数”中进行了描述,例如“默认构造函数 (12.1)、复制构造函数和复制赋值运算符 (12.8)、移动构造函数和移动赋值运算符 (12.8) 和析构函数 (12.4) 是 特殊成员函数。”并且在整个过程中还多次提到“功能”这个词。
-
@BoBTFish:当然可以,但是你不能用构造函数形成函数调用表达式,也不能形成函数指针。所以你必须小心你所说的“功能”。
标签: c++ function class constructor