14.14 — 拷贝构造函数简介

考虑以下程序: #include class Fraction { private: int m_numerator{ 0 }; int m_denominator{ 1 }; public: // 默认构造函数 Fraction(int numerator=0, int denominator=1) : m_numerator{numerator}, m_denominator{denominator} { } void print() const { std::cout << “Fraction(” << m_numerator << “, ” << m_denominator << “)\n”; } }; int …

21.11 — 重载类型转换

在第 课中,您学习了 C++ 允许您将一种数据类型转换为另一种数据类型。以下示例显示了一个 int 被转换为 double:int n{ 5 }; auto d{ static_cast(n) }; // int 转换为 double C++ 已经知道如何在内置类型之间进行转换…

21.10 — 重载圆括号运算符

到目前为止,您看到的所有重载运算符都允许您定义运算符参数的类型,但不能定义参数的数量(参数数量是根据运算符类型固定的)。例如,operator== 总是接受两个参数,而 operator! 总是接受一个参数。括号运算符…

9.4 — 检测和处理错误

在第 课中,我们介绍了许多 C++ 新手程序员常遇到的常见 C++ 语义错误。如果错误是由于语言特性使用不当或逻辑错误造成的,那么错误可以简单地纠正。但程序中的大多数错误并不会出现为…