# C_Plus_learn **Repository Path**: panlke/c_-plus_learn ## Basic Information - **Project Name**: C_Plus_learn - **Description**: C++ - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-11 - **Last Updated**: 2025-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # C++ Learning Demo Project 这是一个用于学习和演示C++各种特性和概念的综合性项目。该项目涵盖了从基础语法到面向对象编程的多个方面。 ## 项目结构 ``` demo/ ├── CMakeLists.txt # CMake构建配置文件 ├── main.cpp # 主程序入口 ├── src/ │ ├── base/ # C++基础特性示例 │ │ ├── HelloWorld.cpp # Hello World示例 │ │ ├── 变量.cpp # 变量和基本数据类型 │ │ ├── 类型修饰符.cpp # 数据类型修饰符 │ │ ├── 类型转换.cpp # 类型转换操作 │ │ ├── 算术运算符.cpp # 算术运算符 │ │ ├── 函数.cpp # 函数基础 │ │ ├── 重载.cpp # 函数重载 │ │ ├── 递归函数.cpp # 递归函数 │ │ ├── 函数指针.cpp # 函数指针 │ │ ├── 数组.cpp # 数组操作 │ │ ├── C风格字符串.cpp # C风格字符串处理 │ │ ├── C++风格字符串.cpp # C++风格字符串处理 │ │ ├── 指针.cpp # 指针基础 │ │ ├── 数组与指针.cpp # 数组与指针关系 │ │ ├── 函数与指针.cpp # 函数与指针结合 │ │ ├── 多级指针.cpp # 多级指针 │ │ ├── 动态内存分配.cpp # 动态内存分配 │ │ ├── 指针与常量.cpp # 指针与常量结合 │ │ ├── 引用.cpp # 引用特性 │ │ ├── 结构体.cpp # 结构体 │ │ └── 类基础.cpp # 类的基础概念 │ └── oop/ # 面向对象编程示例 │ └── model/ │ ├── Person.h/cpp # Person类声明与实现 │ └── Animal.h/cpp # Animal类声明与实现 └── cmake-build-debug/ # CMake构建目录 ``` ## 编译和运行 ### 环境要求 - C++20兼容的编译器(如GCC 10+, Clang 10+) - CMake 3.12或更高版本 - 支持C++标准库的开发环境 ### 构建项目 使用CMake构建项目: ```bash mkdir cmake-build-debug cd cmake-build-debug cmake .. make ``` 或者直接使用支持CMake的IDE(如CLion)打开项目并构建。 ### 运行程序 ```bash ./demo ``` ## 功能模块介绍 ### 基础语法模块 (src/base) 1. **HelloWorld.cpp** - 最简单的C++程序示例 2. **变量.cpp** - 各种数据类型和变量声明 3. **类型修饰符.cpp** - signed、unsigned、short、long等类型修饰符 4. **类型转换.cpp** - C++中的四种类型转换操作符 - static_cast - const_cast - reinterpret_cast - dynamic_cast 5. **算术运算符.cpp** - 基本算术运算符和自增自减操作 6. **函数.cpp** - 函数定义、声明、默认参数和内联函数 7. **重载.cpp** - 函数重载的概念和应用 8. **递归函数.cpp** - 递归函数的实现(阶乘和斐波那契数列) 9. **函数指针.cpp** - 函数指针的使用 10. **数组.cpp** - 数组的声明、初始化和操作 11. **C风格字符串.cpp** - C风格字符串处理函数 12. **C++风格字符串.cpp** - std::string类的使用 13. **指针.cpp** - 指针的基本概念和操作 14. **数组与指针.cpp** - 数组和指针的关系 15. **函数与指针.cpp** - 指针作为函数参数 16. **多级指针.cpp** - 多级指针的概念和使用 17. **动态内存分配.cpp** - new/delete操作符的使用 18. **指针与常量.cpp** - 指针与const关键字的组合使用 19. **引用.cpp** - 引用的概念和使用 20. **结构体.cpp** - struct的定义和使用 21. **类基础.cpp** - class的基本概念、封装、构造函数和析构函数 ### 面向对象模块 (src/oop) 1. **Person类** - 展示封装、构造函数、析构函数、getter/setter方法 2. **Animal类** - 展示继承和多态的基本概念 ## 技术特点 - 使用C++20标准 - 模块化设计,每个文件专注于特定概念 - 包含详细的中文注释,便于理解和学习 - 使用现代CMake构建系统 - 符合现代C++编程实践 ## 学习建议 1. 按照文件名的顺序逐步学习各个概念 2. 查看每个文件中的注释理解代码含义 3. 尝试修改代码并观察运行结果 4. 参考main.cpp中的调用方式理解各模块如何集成 ## 注意事项 - 该项目主要用于学习目的,不适用于生产环境 - 部分文件中包含测试函数,这些函数在main.cpp中被调用 - 所有示例均经过测试,可正常编译和运行