文章目录
全面掌握 C++ 基础:关键特性与进化
💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!
👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!
🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对C语言感兴趣的朋友,让我们一起进步,共同提升!
1. C++ 关键字
2. 命名空间(namespace)
作用:避免全局标识符冲突,实现作用域管理。
⚠️ 示例
#include <stdio.h>
#include <stdlib.h>
int rand = 10;
int main() {
printf("%d", rand); // 与 stdlib.h 的 rand 冲突,编译错误
return 0;
}
2.1 定义命名空间
namespace test1 {
int rand = 10;
int Add(int l, int r) { return l + r; }
struct Node {
Node* next;
int val;
};
}
2.2 使用成员的方法
精确指定作用域:
test1::rand
using 引入某个成员:
using test1::rand; printf("%d", rand);
using namespace 完全展开:
using namespace test1; printf("%d", rand);
3. C++ 输入/输出(iostream)
#include <iostream>
using namespace std;
int main() {
cout << "Hello, world!" << endl;
return 0;
}
<<
是输出流插入运算符,endl
换行并刷新。- 相比
printf/scanf
,cout/cin
能自动类型识别,更安全、简洁。
4. 缺省参数(Default Parameter)
4.1 定义与使用
void Func(int a = 0) {
cout << a << endl;
}
Func(); // 输出 0
Func(10); // 输出 10
4.2 分类
- 全缺省:所有参数都有默认值。
- 半缺省:只能从右向左省略参数。
⚠️ 注意事项
- 默认参数应出现在 声明 中,只写一次;
- 默认值必须是常量或全局变量;
- 只能从右起连续省略,中间不能跳缺。
5. 函数重载(Function Overloading)
5.1 支持条件
同名函数,只要参数列表不同(类型、个数、顺序),即构成重载;返回值不同不算。
5.2 示例
int Add(int, int);
double Add(double, double);
void f();
void f(int);
void f(int, char);
void f(char, int);
✅ 原理
C++ 编译器通过 name mangling 为不同签名改名,实现重载支持;C 语言不支持。
6. 引用(Reference)
6.1 基础概念
int a = 10;
int& ra = a; // ra 是 a 的别名,二者共享内存
- 必须初始化,且不能改变实体;
- 可有多个引用指向同一对象。
6.2 使用场景
参数传递:修改调用方变量或减少拷贝开销。
返回值:尤其用于静态变量引用,避免临时对象。
- 返回栈上对象引用会出错!
6.3 常引用(const&)
const int& ra = 10;
- 防止修改,且可绑定临时值或常量。
6.4 性能提示
引用比传值快,特别是大对象或容器,可以减少或避免拷贝开销。
7. 内联函数(inline)
- 用
inline
修饰的小函数,会在编译期展开,去掉函数调用开销。 - 不建议用于大型、递归或少用函数,否则可能导致可执行体积增大或忽略 inline。
- 推荐在头文件中定义,防止链接错误。
8. auto 关键字(C++11)
- 原是存储类别说明符,C++11 被重定义为编译器类型推断符。
- 使用示例:
auto a = 10; // int
auto b = 'x'; // char
auto c = func(); // 根据返回类型推断
⚠️ 注意:
- 必须初始化;
- 不能用于参数类型声明;
- 避免误用:建议与范围 for 或 lambda 搭配使用。
9. 范围 for 循环(C++11)
int arr[] = {1,2,3,4,5};
for (auto& e : arr) {
e *= 2;
}
- 语法简洁、出错率低;
- 要求类型支持
begin()
、end()
或迭代器操作。
意气风发,漫卷疏狂
学习是成长的阶梯,每一次`的积累都将成为未来的助力。我希望通过持续的学习,不断汲取新知识,来改变自己的命运,并将成长的过程记录在我的博客中。如果我的博客能给您带来启发,如果您喜欢我的博客内容,请不吝点赞、评论和收藏,也欢迎您关注我的博客。
您的支持是我前行的动力。听说点赞会增加自己的运气,希望您每一天都能充满活力!
愿您每一天都快乐,也欢迎您常来我的博客。我叫意疏,希望我们一起成长,共同进步。
我是意疏 下次见!