14.6 — 访问函数

在上一课中,我们讨论了公有和私有访问级别。提醒一下,类通常将其数据成员设为私有,私有成员不能被外部直接访问。考虑以下 Date 类:#include <iostream> class Date { private: int m_year{ 2020 }; int m_month{ …

14.3 — 成员函数

在这一课中,我们介绍了 struct 程序定义类型,它可以包含成员变量。以下是一个用于保存日期的 struct 示例:struct Date { int year {}; int month {}; int day {}; }; 现在,如果我们想将日期打印到屏幕上……

7.2 — 用户自定义命名空间和作用域解析运算符

在这一课中,我们介绍了命名冲突和命名空间的概念。提醒一下,当两个相同的标识符被引入到同一作用域中时,就会发生命名冲突,并且编译器无法区分使用哪个。当发生这种情况时,编译器或链接器会产生错误,因为它们……

20.3 — 递归

C++ 中的递归函数是调用自身的函数。这是一个编写得很糟糕的递归函数的例子:#include <iostream> void countDown(int count) { std::cout << “push ” << count << ‘\n’; countDown(count-1); // countDown() 递归调用自身 } int main() { countDown(5); return 0; } 当 countDown(5)……

20.2 — 栈与堆

程序使用的内存通常分为几个不同的区域,称为段:代码段(也称为文本段),编译后的程序位于内存中。代码段通常是只读的。bss 段(也称为未初始化数据段),其中零初始化的全局和……

20.1 — 函数指针

在这一课中,你了解到指针是一个存储另一个变量地址的变量。函数指针类似,不同的是它们不是指向变量,而是指向函数!考虑以下函数:int foo() { return 5; } 标识符 foo() 是函数的名称。但是……

11.5 — 默认参数

这是一个为函数参数提供的默认值。例如:void print(int x, int y=10) // 10 是默认参数 { std::cout << “x: ” << x << ‘\n’; std::cout << “y: ” << y << ‘\n’; } 调用函数时,调用者可以选择……

11.1 — 函数重载简介

考虑以下函数:int add(int x, int y) { return x + y; } 这个简单的函数将两个整数相加并返回一个整数结果。但是,如果我们还想要一个可以相加两个浮点数的函数怎么办?这个 add() 函数不适合,因为任何浮点数……