首页 > 编程语言 >C++ 学习笔记

C++ 学习笔记

时间:2024-04-29 21:44:32浏览次数:28  
标签:函数 代码 笔记 学习 面向对象 C++ 变量 指针

​1、基础概念

C++ 是一种高性能的编程语言,由 Bjarne Stroustrup 在 1980 年代初设计,旨在为C语言添加面向对象的功能。自那时起,C++ 已发展成为一种支持过程性、面向对象和泛型编程的多范式语言,广泛应用于系统软件、游戏开发、驱动程序、嵌入式固件等领域。

要开始使用 C++,首先需要安装和配置开发环境。这通常包括选择一个合适的编译器如 GCC 或 Clang,并设置一个集成开发环境(IDE),例如 Visual Studio 或 Code::Blocks,这些工具提供了代码编辑、编译、调试的一体化解决方案。

入门的第一步通常是编写一个 "Hello World" 程序。这个简单的程序只需几行代码,即可输出 "Hello World" 到控制台,从而验证开发环境是否配置正确。

在 C++ 中,理解数据类型和变量是基本的。C++ 提供了多种基本数据类型,如 intdoublecharbool,用来存储数字、字符和布尔值。此外,C++ 支持数组、结构体、指针和引用等复杂数据类型。

控制流程是任何编程语言的核心,C++ 提供了条件语句(如 ifelseswitch)和循环语句(如 forwhiledo-while)来控制代码的执行路径和重复执行代码块。

函数是组织好代码的关键,它们允许将代码分解为可重用的单元。C++ 中的函数可以有参数和返回值,允许在程序中的任何地方调用它们,从而提高代码的可读性和模块性。

参考文档:

C++ 简介

C++ 集成开发环境

C++ 入门教程

C++ 编写代码语法

C++ 注释作用写法及示例代码

C++ 变量类型

C++ 常量

C++ 存储类型

C++ 数据类型

C++ 运算符

C++ 条件语句(If else)

C++ switch case 语句

C++ while循环语句

C++ for循环语句

C++ break和continue关键字

C++ 数组

C++ 类型修饰符

C++ 函数

C++ 递归

2. C++语言特性

引用和指针是C++中用于内存管理的核心概念,允许程序员直接操作内存地址。引用作为变量的别名存在,而指针则存储内存地址,使得访问和操作变量变得更灵活。内存管理还涉及到堆和栈的使用,其中栈用于存储局部变量和函数调用的信息,而堆则用于动态内存分配,通常由程序员手动管理,这在处理大量数据或不确定数据大小时特别有用。

在组织大型程序时,命名空间提供了避免名字冲突的方式,使得相同名字的变量或函数可以在不同的命名空间下共存,极大地增强了代码的模块化和可维护性。

面向对象编程是C++的一个核心特性,它通过类和对象的使用提供了一种更直观和灵活的方式来处理程序数据。类定义了对象的结构和行为,是面向对象设计的基础。继承、多态和封装是面向对象编程的三大基石。继承允许新的类继承现有类的特性,多态通过接口的多种实现提供了函数行为的多样性,而封装则隐藏了数据的内部表示,只暴露必要的操作接口,这有助于减少系统的复杂性并提高其安全性。这些特性共同工作,使得C++能够开发出结构清晰、可重用且易于维护的应用程序。

参考文档:

C++ 作用域及命名空间

C++ 枚举(enum)

C++ 指针

C++ 指针变量的加减及比较

C++ 指针数组

C++ 函数指针和指针函数

C++ 字符串

C++ struct结构体

C++ 结构体位域

C++ 共用体

C++ typedef

C++ 引用变量

C++ 输入输出(cout、cin、cerr、clog)

C++ 预处理命令

C++ 头文件

C++ 数据类型转换

C++ 函数参数

C++ 函数重载

C++ 类和对象

C++ 类成员函数(方法)

C++ 构造函数

C++ 访问修饰符

C++ 析构函数

C++ 拷贝构造函数

C++ 友元类和友元函数

C++ 内联函数

C++ 面向对象 this 指针

C++ 指向类对象的指针

C++ 类的静态成员变量和函数

C++ 面向对象 封装

C++ 面向对象 继承

C++ 面向对象 多态(虚函数和纯虚函数)

C++ 接口(抽象类)

3、标准库
标准库提供了丰富的功能模块,这些模块包括标准输入输出流(iostream)、字符串处理(string)、容器类和算法库,以及输入输出流库(fstream)。具体来说,iostream库负责标准的输入输出操作,如读取键盘输入和屏幕输出。string库提供了强大的字符串处理能力,使得字符串操作更加简便和安全。容器类包括向量(vector)、列表(list)、集合(set)、映射(map)等,这些容器为数据存储和访问提供了多种灵活的方式。算法库(algorithm)则提供了一系列预定义的算法,如排序和搜索,可以直接应用于容器类。最后,输入输出流库(fstream)扩展了iostream的功能,支持对文件的读写操作,这使得文件处理变得更为高效和简洁。这些库的综合运用极大地增强了C++的表达力和实用性。
参考文档:

C++ File文件处理 相关函数方法

C++ File文件处理 创建和写文件

C++ File文件处理 读文件

C++ File文件处理 删除文件和文件夹目录

C++ try catch 异常处理

C++ 动态内存分配(new,delete)

C++ 命名空间

C++ 模板

C++ 标准库

标签:函数,代码,笔记,学习,面向对象,C++,变量,指针
From: https://www.cnblogs.com/tinyblog/p/18166702

相关文章

  • [论文笔记] A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT
    Introduction:一个好的prompt可以提高LLM的表现;prompt可以像软件开发一样被工程化;这篇论文的主要贡献在于提出了promptpatterns用于promptengineeringComparingsoftwarepatternswithpromptpatterns:这篇论文提出的用于构建prompt的framework可以帮助用户......
  • SQL SERVER 从入门到精通 第5版 第三篇 高级应用 第11章 触发器 读书笔记
     第11章触发器>.概述触发器是一种特殊类型的存储过程.当指定表中的数据发生变化时触发器自动生效.它与表紧密相连,可以看作表定义的一部分.触发器不能通过名称被直接调用,更不允许设置参数.在SQLSERVER中,一张表可以有多个触发器.用户可以使用INS......
  • Asp-Net-Core开发笔记:使用AOP实现动态审计日志功能
    前言#最近一直在写Go和Python,好久没写C#,重新回来写C#代码时竟有一种亲切感~说回正题。在当今这个数字化迅速发展的时代,每一个操作都可能对业务产生深远的影响,无论是对数据的简单查询,还是对系统配置的修改。在这样的背景下,审计日志不仅仅是一种遵循最佳实践的手段,更是......
  • 统一场理论公式推导和笔记——part4
    三十二,核力场的定义方程所有的场都可以通过引力场变化而得到。核力场和电磁场一样也可以用引力场的变化来表示。==》这个就非常关键了,万有引力场【简称引力场】,回忆下定义:o点在空间点p处产生的引力场A【数量为a】:a=常数乘以Δn/Δs,A=-gkΔn(R/r)/Ωr² =-gkΔnR/Ω......
  • 深入理解 C++ 中的多态与文件操作
    C++多态多态(Polymorphism)是面向对象编程(OOP)的核心概念之一,它允许对象在相同操作下表现出不同的行为。在C++中,多态通常通过继承和虚函数来实现。理解多态想象一个场景,你有一个动物园,里面有各种动物,如猫、狗、鸟等。每个动物都有自己的叫声。使用面向对象编程,我们可以创建一个......
  • pde复习笔记 第一章 波动方程 第三节 分离变量法
    教材谷超豪《数学物理方程》第四版,虽然我们老师用的第三版,但是除了页码对不上,习题多了一点,也似乎没有多少区别。打算开个新栏专门总结一下pde的各种计算问题,在图书馆算的手麻了,但是习题几乎都是按套路出牌,所以打算好好总结一下。齐次方程提醒:这里的边界条件是两端固定,也即......
  • [Python急救站]基于Transformer Models模型完成GPT2的学生AIGC学习训练模型
    为了AIGC的学习,我做了一个基于TransformerModels模型完成GPT2的学生AIGC学习训练模型,指在训练模型中学习编程AI。在编程之前需要准备一些文件:首先,先win+R打开运行框,输入:PowerShell后输入:pipinstall-Uhuggingface_hub下载完成后,指定我们的环境变量:$env:HF_ENDPOINT="ht......
  • 机器学习笔记
    四、机器学习1深度学习1.1线性回归与逻辑回归1.1.1线性回归1.1.1.1线性回归——二维线性回归方程1)原理讲述这个应该上过高中的小伙伴都听过,也都用过,那是在高中必修3中出现的知识点,考试也是会考的,可能你想不起那个公式了,但你肯定依稀的记得$\hat{a},\hat{b}$这两个......
  • DSP学习笔记(1)
    DSP28335最小系统电源电路晶振电路作用:提供稳定的时钟晶振频率:一般为30MHz复位电路使用JTag烧录程序过程中不能复位,否则芯片可能锁死下载电路F28335启动模式存储器与寄存器F28335芯片内部的存储器包括了256K×16位的FLASH(ROM),34K×16位的SARAM,8K×16......
  • 【笔记】Burnside 引理
    (轨道公式)$$|G|=|G_x|\cdot|O_x|$$对于\(G\)在\(\Omega\)上的群作用,\(\forallx\in\Omega\),定义\(O_x:=\{g(x)\midg\inG\}\),称为\(x\)的\(G\)-轨道。定义\(G_x:=\{g\inG\midg(x)=x\}\),称为\(x\)的稳定子群,它的确是\(G\)的子群。而轨道有如下性质......