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++ 中,是一种潜在不安全的数值转换,其中目标类型可能无法容纳源类型的所有值。……