C++基础知识

C++ 基础知识完整详解(2026 最新版) 🚀

C++ 是高效、灵活、接近硬件的编程语言,被广泛用于游戏开发(Unreal Engine)、系统软件、嵌入式、高性能后端等领域。现代 C++(C++11 及以后)强调安全性、简洁性和性能,强烈推荐直接学习 Modern C++,避免老式 C 风格代码。

下面我为你整理一套 系统、清晰、由浅入深的 C++ 基础知识框架,适合零基础或有其他语言基础的同学。每个模块都包含核心概念 + 示例 + 注意事项 + 最佳实践


第 1 章:C++ 入门准备与第一个程序

  • 开发环境(2026 推荐):
  • 编译器:GCC/Clang(Linux/Mac)、MSVC(Windows)
  • IDE:Visual Studio(Windows 首选)、CLion、VS Code + CMake
  • 在线练习:Compiler Explorer (godbolt.org)、LeetCode、CppReference

Hello World(现代写法)

#include <iostream>

int main() {
    std::cout << "Hello, C++2026!" << std::endl;
    return 0;
}
  • #include <iostream>:引入输入输出库
  • std::cout:标准输出(推荐一直写 std:: 前缀)
  • std::endl:换行并刷新缓冲区

编译运行g++ main.cpp -o hello && ./hello


第 2 章:基本语法与数据类型

2.1 变量、常量与标识符

  • 基本数据类型
  • 整数:intlonglong long(推荐 std::int64_t 等)
  • 浮点:floatdouble
  • 字符:charwchar_tchar8_t/char16_t/char32_t(C++20)
  • 布尔:bool
  • 无类型:void
  • 类型修饰符signedunsignedshortlong
  • 常量const(编译期)、constexpr(C++11,强常量表达式)
const int MAX = 100;
constexpr int square(int x) { return x * x; }  // C++11

2.2 输入输出

#include &lt;iostream>
int main() {
    int a;
    std::cin >> a;
    std::cout &lt;&lt; "你输入了:" &lt;&lt; a &lt;&lt; std::endl;
}

第 3 章:运算符与控制结构

  • 运算符:算术(+ - * / %)、关系(== != > <)、逻辑(&& || !)、位运算、赋值、自增自减、三目运算符 ?:
  • 控制语句
  • if-elseswitch-case
  • forwhiledo-while
  • range-based for(C++11 现代写法):
    cpp for (int x : {1,2,3,4}) { std::cout << x << ' '; }

注意:避免在循环中使用 using namespace std;(容易造成命名冲突)。


第 4 章:函数

  • 函数定义与声明(分离头文件与源文件)
  • 函数重载(Overloading):同名函数不同参数列表
  • 默认参数:只能从右到左设置
  • 内联函数 inline(减少函数调用开销)
  • 引用参数(后面详解)
int add(int a, int b = 0);  // 声明

int add(int a, int b) {
    return a + b;
}

第 5 章:命名空间(namespace)

(你之前专门问过,我这里简要回顾 + 补充)

namespace MyProject {
    namespace Utils {
        void log(const std::string&amp; msg);
    }
}

using MyProject::Utils::log;  // 推荐单个引入
// using namespace std;       // 慎用,尤其在头文件中

最佳实践:自己的代码全部放入自定义 namespace,头文件不要写 using namespace


第 6 章:引用(Reference)与指针(Pointer) —— 非常重要!

  • 引用:变量的别名,必须初始化,不能为空,不能重新绑定。
  int a = 10;
  int&amp; ref = a;   // 引用
  ref = 20;       // a 也变成 20
  • 指针:存储地址,可以为空,可以重新指向。
  int* p = nullptr;   // 空指针(现代推荐)
  int* p2 = &amp;a;

现代 C++ 推荐:能用引用就不用指针,能用 std::unique_ptr 就不用裸指针。

const 位置

  • const int* p:指向常量(不能通过 p 修改值)
  • int* const p:常量指针(p 本身不能指向其他地址)

第 7 章:数组、字符串与结构体

  • 数组int arr[10];(固定大小,推荐 std::array
  • C 风格字符串 vs std::string(强烈推荐后者)
  #include &lt;string>
  std::string s = "Hello";
  s += " C++";
  • 结构体(struct)和 (class)初步:struct 默认 public,class 默认 private。

第 8 章:内存管理初步

  • vs (new/delete)
  • 现代替代:std::unique_ptrstd::shared_ptr(智能指针,后续会详细讲)
  • 避免内存泄漏:RAII(Resource Acquisition Is Initialization)思想

第 9 章:面向对象编程(OOP)基础

  • 类与对象
  • 封装(private/protected/public)
  • 构造函数(默认、拷贝、有参)、析构函数
  • this 指针
  • 成员函数 const(const 对象只能调用 const 成员函数)
class Student {
public:
    Student(const std::string&amp; name) : name_(name) {}  // 初始化列表
    void show() const { std::cout &lt;&lt; name_ &lt;&lt; std::endl; }
private:
    std::string name_;
};

第 10 章:C++ 标准库(STL)入门

  • 容器std::vector(动态数组)、std::liststd::mapstd::unordered_map
  • 算法std::sortstd::find 等(<algorithm>
  • 迭代器:容器与算法之间的桥梁

现代写法示例

#include &lt;vector>
#include &lt;algorithm>

std::vector&lt;int> v = {3, 1, 4, 1, 5};
std::sort(v.begin(), v.end());

学习路线建议(2026 版)

  1. 首推书籍
  • 《C++ Primer》(第 5 版或更新版)—— 基础最全面
  • 《Effective Modern C++》(Scott Meyers)—— 现代特性
  • C++ Core Guidelines(官网免费,必看最佳实践)
  1. 在线资源
  • cppreference.com(查手册神器)
  • learncpp.com(免费教程)
  • The Cherno / freeCodeCamp YouTube 视频课程
  • 《现代 C++ 编程实战》视频系列
  1. 练习项目(边学边做):
  • 计算器
  • 学生管理系统(用 vector + struct/class)
  • 井字棋 / 猜数字游戏
  • 文件读写小工具
  1. 编译选项:至少用 -std=c++20-std=c++17,开启警告 -Wall -Wextra

下一阶段预告(现代 C++ 重点):

  • auto、range-based for、lambda 表达式
  • 智能指针与移动语义(move)
  • 模板与泛型编程
  • 异常处理
  • 多线程基础(std::thread

你现在想怎么继续?

回复以下任意内容,我立刻给你详细展开

  • “从第X章开始详细讲 + 代码练习”
  • “给我 20 道 C++ 基础练习题(带答案)”
  • “现代 C++ 特性速成(C++11~C++23)”
  • “指针与引用完全对比 + 智能指针”
  • “OOP(类与对象)详解 + 示例项目”
  • “推荐一个完整的入门小项目,手把手带做”
  • “C++ Core Guidelines 核心条款解读”

或者直接说:“我要系统学习完整路线,每章后出练习题”。

记住:C++ 学习曲线有点陡,但坚持下来后,你会发现它的强大和优雅。动手写代码是最快的进步方式!

随时问我,我们一步步把 C++ 基础打得扎实无比!💪

你现在最想先深入哪一部分?

文章已创建 5130

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部