21.11 — 重载类型转换
在课程中,您学习到 C++ 允许您将一种数据类型转换为另一种数据类型。以下示例显示了一个 int 被转换为 double: int n{ 5 }; auto d{ static_cast<double>(n) }; // int 转换为 double C++ 已经知道如何在内置类型之间进行转换…
在课程中,您学习到 C++ 允许您将一种数据类型转换为另一种数据类型。以下示例显示了一个 int 被转换为 double: int n{ 5 }; auto d{ static_cast<double>(n) }; // int 转换为 double C++ 已经知道如何在内置类型之间进行转换…
到目前为止您看到的所有重载运算符都允许您定义运算符参数的类型,但不能定义参数的数量(参数数量根据运算符类型是固定的)。例如,operator== 总是接受两个参数,而 operator! 总是接受一个。括号运算符…
在课程中,我们介绍了许多新手 C++ 程序员在使用该语言时遇到的常见 C++ 语义错误。如果错误是由于误用语言特性或逻辑错误造成的,那么错误可以简单地纠正。但是程序中的大多数错误不会以……的形式发生。
使用数组时,我们通常使用下标运算符 ([]) 来索引数组的特定元素:myArray[0] = 7; // 将值 7 放入数组的第一个元素 但是,请考虑以下 IntList 类,它有一个成员变量是一个数组:class IntList…
重载递增 (++) 和递减 (--) 运算符非常直接,只有一个小例外。实际上,递增和递减运算符有两个版本:前缀递增和递减(例如 ++x; --y;)以及后缀递增和递减(例如 x++; y--;)。因为递增和递减运算符是……
在课程中,您学习了如何使用友元函数重载算术运算符。您还学习了可以将运算符重载为普通函数。许多运算符可以用不同的方式重载:作为成员函数。使用成员函数重载运算符与使用……重载运算符非常相似。
重载一元运算符 与您目前看到的运算符不同,正号 (+)、负号 (-) 和逻辑非 (!) 运算符都是一元运算符,这意味着它们只操作一个操作数。因为它们只操作它们所应用的对象,所以通常一元运算符重载被实现为……
在课程中,我们讨论了六个比较运算符。重载这些比较运算符相对简单(看到我做了什么吗?),因为它们遵循我们重载其他运算符时看到的相同模式。由于比较运算符都是不修改其左操作数的二元运算符,我们……
对于具有多个成员变量的类,在屏幕上打印每个单独的变量很快就会变得令人厌烦。例如,考虑以下类:class Point { private: double m_x{}; double m_y{}; double m_z{}; public: Point(double x=0.0, double y=0.0, double z=0.0) : m_x{x}, m_y{y}, m_z{z} { } double …
C++ 中最常用的运算符是算术运算符——即加号 (+)、减号 (-)、乘号 (*) 和除号 (/)。请注意,所有算术运算符都是二元运算符——这意味着它们接受两个操作数——每个操作数一个……