这是构造函数的一种类型吗
Is this a type of constructor?
我翻阅了我的一本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;
吗?
这是详细信息:
-
参数中CCD_ 4的目的是确保原始对象不能通过其引用而更改。。。
const
after参数是为了确保该方法不能更改其主体中的任何内容。。 -
该函数返回
CDistance
的对象,因此在执行之后,您可以使用一个新对象来获取它,例如:
CDistance tempObj = theObj.add (param_obj);
希望帮助…:D
它很有用:
C距离D1=C距离();
C距离D2=C距离();
C距离D3=C距离();
D3.add(D2.add(D1));
相关文章:
- 在运行时检查继承是否只有一种类型和 void*
- 另一种类型的智能ptr,比如具有弱refs的unique_ptr
- void* 数组将元素转换为另一种类型
- 将一种类型的比特重新解释为不同类型的比特的技术
- 为什么需要类型名称,即使似乎足以推断名称应该是一种类型?
- 在 c++ 中将一种结构类型分配给另一种类型
- 将空基类优化对象强制转换为另一种类型是否会破坏严格的别名?
- 我怎样才能让编译器推导出一种类型的 nullptr
- 一种类型的多个 cv 分解
- 如何将对象定义为一种类型,然后再将其声明为子类型
- 类中的结构不是一种类型
- 一种类型特征,标识哪个类提供通过重载解析选择的函数
- 将 32 位浮点数和不强制转换的 32 位整数与双精度进行比较,当其中一个值可能太大而无法完全适合另一种类型时
- constexpr检查一种类型
- 何时与另一种类型兼容
- 依赖名称不是一种类型,带有 SFINAE 的模板
- 自动将一种 c++ 类型转换为另一种
- C 模板可以匹配(仅)一种类型的列表或另一种类型的列表
- 是否可以将一种类型的数组转换为大小不同的另一种类型的数组?
- 在比较中使用已强制转换为另一种类型的函数指针是否定义良好?