14.11 — 默认构造函数和默认实参
A 是一个不接受任何参数的构造函数。通常,这是一个没有参数的构造函数。以下是一个具有默认构造函数的类的示例:#include <iostream> class Foo { public: Foo() // 默认构造函数 { std::cout << “Foo 默认构造\n”; } }; …
A 是一个不接受任何参数的构造函数。通常,这是一个没有参数的构造函数。以下是一个具有默认构造函数的类的示例:#include <iostream> class Foo { public: Foo() // 默认构造函数 { std::cout << “Foo 默认构造\n”; } }; …
在上一章中,我们讨论了结构体 (),并讨论了它们如何将多个成员变量捆绑到一个可以作为一个单元进行初始化和传递的单个对象中。换句话说,结构体提供了一个方便的包,用于存储和移动相关数据值。考虑……
函数及其调用者通过两种机制进行通信:参数和返回值。当函数被调用时,调用者提供实参,函数通过其形参接收这些实参。这些实参可以通过值、引用或地址传递。通常,我们将通过值或通过……
与非 const 引用(只能绑定到可修改的左值)不同,const 引用可以绑定到可修改的左值、不可修改的左值和右值。因此,如果我们将引用参数设为 const,那么它将能够绑定到任何类型的实参:#include <iostream> void printRef(const int& …
带有程序定义成员的结构体 在 C++ 中,结构体(和类)可以拥有其他程序定义类型的成员。有两种方法可以做到这一点。首先,我们可以在全局作用域中定义一个程序定义类型,然后将其用作另一个程序定义类型的成员:#include <iostream> struct Employee …
通常,if 语句的条件是在运行时评估的。但是,考虑条件是常量表达式的情况,例如以下示例:#include <iostream> int main() { constexpr double gravity{ 9.8 }; // 提醒:相同类型的低精度浮点字面量可以测试……
在上一课 () 中,我们介绍了数字转换,它涵盖了基本类型之间广泛的不同类型转换。窄化转换 在 C++ 中,是一种可能不安全的数字转换,其中目标类型可能无法容纳源类型的所有值。……