[C.C++] C++基本知识篇

576 0
Honkers 2026-1-5 10:57:44 来自手机 | 显示全部楼层 |阅读模式

C++ 基础知识点可按「入门必备→核心语法→面向对象基础→常用工具」的逻辑梳理,以下是系统且易懂的总结,含关键概念、示例和注意事项:

1. 开发环境
  • 编译器

    GCC(Linux/macOS)、Clang(macOS)、MSVC(Windows,Visual Studio 内置)

  • IDE(推荐)
    • 新手入门:Dev-C++(轻量)、Code::Blocks(跨平台)

    • 进阶 / 项目开发:Visual Studio(Windows)、CLion(跨平台,需配置编译器)

2. 第一个 C++ 程序(Hello World)

二、核心语法:数据与运算

1. 基本数据类型

C++ 数据类型分为「内置类型」和「自定义类型」(后续类 / 结构体),内置类型核心如下:

  • 关键字:sizeof(类型/变量) 查看占用字节数,如 sizeof(int) → 4;

  • 注意:浮点型默认是 double,float 需加后缀 f,否则可能精度警告。

2. 变量与常量

变量:可修改的存储单元,必须「先定义 / 初始化,后使用」(避免野值);

常量:不可修改的量,两种定义方式:

3. 运算符

按功能分类,核心注意点如下:

  • 优先级:括号 () 最高,算术 > 关系 > 逻辑 > 赋值(不确定就加括号)。

三、控制流:程序执行逻辑

1. 分支结构
  • if-else

    :处理多条件判断

switch-case:处理多常量分支(需加 break 避免穿透)

2. 循环结构
  • for 循环

    :适合已知循环次数

while 循环:适合未知循环次数(先判断后执行)

do-while 循环:至少执行一次(先执行后判断)

  • 循环控制:break(跳出当前循环)、continue(跳过本次循环剩余代码)。

四、函数:代码复用与模块化

1. 函数的定义与调用
  • 结构:返回类型 函数名(参数列表) { 函数体; return 返回值; }

  • 示例:

2. 关键特性
  • 函数声明

    :声明与定义分离(头文件 .h 声明,源文件 .cpp 定义),解决多文件复用问题:

函数重载:同一作用域下,函数名相同,参数列表(个数 / 类型 / 顺序)不同(返回值不影响):

默认参数:从右往左指定默认值,不可跳过前面参数:

五、数组与字符串:批量数据存储

1. 数组
  • 定义:类型 数组名[长度];(长度必须是常量,C++11 支持变量长度但不推荐)

  • 初始化与访问:

    注意:数组名是「首元素地址」,作为函数参数时会退化为指针(需手动传递长度):

2. 字符串
  • 两种方式:

    1. C 风格字符串(字符数组):char str[] = "hello";(末尾隐含 '\0' 作为结束标志);

    2. C++ 风格字符串(string 类,推荐):需包含  头文件,支持直接拼接、长度获取等:

六、指针与引用:内存访问利器

1. 指针
  • 定义:类型* 指针名;(存储变量的内存地址,* 表示指针)

  • 核心操作:

    2. 引用
    • 定义:类型& 引用名 = 原变量;(原变量的「别名」,必须初始化,且不能改指向)

    • 示例:

    指针 vs 引用:

    七、面向对象基础(C++ 核心)

    C++ 核心特性是「面向对象」,核心思想是「封装、继承、多态」,基础如下:

    1. 类与对象
    • 类:自定义数据类型,包含「成员变量」(属性)和「成员函数」(行为);

    • 对象:类的实例(如 Person 是类,zhangsan 是对象)。

    • 示例:

    2. 访问控制
    • public

      :类外可访问(暴露接口);

    • private

      :仅类内可访问(隐藏实现,封装核心);

    • protected

      :类内 + 子类可访问(继承用)。

    3. 构造函数与析构函数
    • 构造函数:

      • 无参构造:Person()(若未定义任何构造函数,编译器自动生成默认无参构造);

      • 有参构造:如上面的 Person(string n, int a);

      • 拷贝构造:Person(const Person& p)(用已有对象初始化新对象)。

    • 析构函数:~类名(),无参数无返回值,对象销毁时自动调用(释放资源,如堆内存):

    八、STL 入门:标准模板库(常用工具)

    STL 是 C++ 标准库的核心,提供「容器」(存储数据)、「算法」(操作数据)、「迭代器」(遍历容器),新手需掌握以下常用组件:

    1. 容器(常用)
    • vector(动态数组)

      :支持随机访问,尾部插入 / 删除高效,需包含 

    • string

      :前面已讲,替代 C 风格字符串。

    2. 算法(常用)

    需包含  头文件:

    • sort()

      :排序(默认升序);

    find():查找(返回迭代器,未找到返回 end())

    九、常见注意事项(避坑指南)

    1. 变量初始化

      :内置类型变量(如 int)未初始化会是随机值(野值),必须初始化;

    2. 数组越界

      :下标超过 长度-1 会访问非法内存,导致程序崩溃;

    3. 指针安全

      :使用指针前先判断是否为 nullptr,避免野指针;

    4. 内存管理

      :new 分配的堆内存必须用 delete 释放(数组用 delete[]),否则内存泄漏:

    5.头文件保护:自定义头文件需加保护,避免重复包含:

    6.命名空间:using namespace std; 虽方便,但可能导致命名冲突,大型项目建议显式写 std::cout

    以上是 C++ 基础的核心知识点,掌握这些后可过渡到「面向对象进阶(继承、多态)、指针进阶(智能指针)、STL 深入」等内容。学习时建议多写代码练习,通过实例巩固概念!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    中国红客联盟公众号

    联系站长QQ:5520533

    admin@chnhonker.com
    Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行