当前位置: 首页 > news >正文

侯捷 C++ 课程学习笔记:C++ 基础与演化

一、课程基础要求

在侯捷老师C++ 课程中,首先强调了学习 C++ 前应具备的基础知识。这些基础知识对于理解 C++ 的核心概念和编程技巧至关重要。

  • 掌握某种过程式语言(C 语言最佳)

    • 变量(Variables):理解变量的声明、初始化和使用。

    • 类型(Types):熟悉基本数据类型,如 intfloatchar,以及结构体 struct 等。

    • 作用域(Scope):理解变量和函数的作用域,包括全局作用域和局部作用域。

    • 循环(Loops):掌握 whilefor 循环的使用。

    • 流程控制(Flow Control):理解 if-elseswitch-case 等流程控制语句。

  • 了解程序的编译和链接过程

    • 知道一个程序需要经过编译和链接才能被执行。

    • 掌握如何编译和链接代码,建立一个可运行的程序。

二、课程目标

侯捷老师C++ 课程的目标是培养学员良好的编程习惯和面向对象的编程思维。

  • 培养正规的、大气的编程习惯

    • 以良好的方式编写 C++ 类,包括:

      • 不包含指针成员的类:如 Complex 类。

      • 包含指针成员的类:如 String 类。

  • 学习类之间的关系

    • 继承(Inheritance):理解类的继承机制,如何通过继承复用代码。

    • 复合(Composition):理解类的复合关系,即一个类包含另一个类的实例。

    • 委托(Delegation):理解类的委托关系,即一个类将某些功能委托给另一个类。

三、课程内容
  • C++ 的历史

    • B 语言(1969):C 语言的前身。

    • C 语言(1972):过程式编程语言,广泛用于系统编程。

    • C++ 语言(1983):最初称为 "new C",后改为 "C with Class",最终定名为 C++。

    • Java 语言:面向对象的编程语言,广泛用于企业级应用。

    • C# 语言:微软开发的面向对象编程语言,用于 .NET 平台。

  • C++ 的演化

    • C++ 98 (1.0):第一个正式的 C++ 标准。

    • C++ 03 (TR1, Technical Report 1):对 C++ 98 的技术报告,包含一些新特性。

    • C++ 11 (2.0):引入了大量新特性,如自动类型推导、初始化列表、移动语义等。

    • C++ 14:对 C++ 11 的小幅改进和补充。

  • C++ 的组成部分

    • C++ 语言:包括语法、关键字、标准库等。

    • C++ 标准库:提供了一系列常用的类和函数,如容器、算法、输入输出流等。

四、学习心得

通过学习侯捷老师的C++ 课程,我对 C++ 的基础知识和演化历程有了更深入的理解。课程内容从基础到高级,逐步引导学员掌握 C++ 的核心概念和编程技巧。特别是对类的编写和类之间的关系的理解,为后续的面向对象编程打下了坚实的基础。

在实际编程中,掌握 C++ 的基础知识和标准库的使用,可以显著提高代码的可读性和可维护性。同时,了解 C++ 的历史和演化,有助于更好地理解语言的设计理念和未来发展方向。

五、总结

老师通过详细的讲解:从基础的变量和类型,到高级的类和对象,再到 C++ 的历史和演化,课程内容丰富而系统。通过学习,我不仅提升了编程相关知识,还明确了要有良好的编程习惯和面向对象的编程思维。

相关文章:

侯捷 C++ 课程学习笔记:C++ 基础与演化

一、课程基础要求 在侯捷老师C 课程中,首先强调了学习 C 前应具备的基础知识。这些基础知识对于理解 C 的核心概念和编程技巧至关重要。 掌握某种过程式语言(C 语言最佳): 变量(Variables):理解…...

LangChain:AI大模型开发与分布式系统设计

文章目录 第一部分:大模型与 LangChain 基础1.1 大语言模型概述1.2 LangChain 基础 第二部分:模型初始化与调用2.1 自定义大模型架构 第三部分:高级模型设计与优化3.1 提示工程与模型调优3.2 高效处理大规模数据 第四部分:分布式系…...

AI赋能编程:PyCharm与DeepSeek的智能开发革命

在这个智能化的时代,人工智能技术正在深刻地改变着我们的工作方式,尤其是在编程领域。无论是初学者还是资深开发者,都希望借助更高效的工具和智能助手来提升生产力、优化代码质量。今天,我们将聚焦于两个强大的工具:Py…...

c++:stack与deque

1.stack使用 1.1empty 作用:判断栈中是否为空 我们看到这里s1初始化的时候是空初始化,所以用empty来判断出的就是空的栈 1.2size size的作用就是判断栈中的数据个数 1.3push 与vector,string,list不同的是,stack中没有头插尾插的概念 因为栈有一个原则&…...

Linux-C/C++《C++/1、C++基础》(C++语言特性、面向对象等)

这里主要介绍概念为主,主要介绍 C与 C 语言中常用的不同点,和一些新的变化。其中不会去说指针、数据类型、变量类型、判断和循环等这些知识,这些和C 语言基本是一样使用的。我们主要学习 C的面向对象编程,对学习 Qt 有很大的帮助。…...

交易所开发:数字市场的核心动力

数字资产交易所作为连接用户与市场的核心枢纽,已成为推动数字经济发展的关键引擎。其开发不仅需要技术创新,还需兼顾用户体验、合规安全与生态构建,以下是交易所开发的核心要素与实践路径分析: 一、交易所的核心定位与技术架构…...

Spring Boot 应用(官网文档解读)

Spring Boot 启动方式 SpringApplication.run(MyApplication.class, args); Spring Boot 故障分析器 在Spring Boot 项目启动发生错误的时候,我们通常可以看到上面的内容,即 APPLICATION FAILED TO START,以及后面的错误描述。这个功能是通过…...

.Net面试宝典【刷题系列】

文章目录 1、JIT是如何工作的2、值类型和引用类型的区别3、解释泛型的基本原理4、如何自定义序列化和反序列化的过程5、如何使用 IFormattable 接口实现格式化输出6、请解释委托的基本原理7、什么是链式委托8、请解释反射的基本原理和其实现的基石9、如何利用反射来实现工厂模式…...

Unity游戏制作中的C#基础(3)加减乘除算术操作符,比较运算符,逻辑与,或运算符

1. 基本算术运算符 算术运算符主要用于对数值类型(整型和浮点型)进行基本的数学运算。以下是常见的算术运算符及其说明: 运算符描述示例结果加法运算符,用于两个数相加,也可用于字符串连接int a 5 3; string str &…...

如何优化 Webpack 的构建速度?

优化 Webpack 的构建速度是现代前端开发中至关重要的任务。随着项目规模的扩大,构建时间可能会显著增加,影响开发效率。以下是一些实用的方法和策略,以帮助你优化 Webpack 的构建速度。 一、使用生产模式和开发模式 1. 生产模式与开发模式 …...

win10把c盘docker虚拟硬盘映射迁移到别的磁盘

c盘空间本身就比较小、如果安装了docker服务后,安装的时候没选择其他硬盘,虚拟磁盘也在c盘会占用很大的空间,像我的就三十多个G,把它迁移到其他磁盘一下子节约几十G 1、先输入下面命令查看 docker 状态 wsl -l -v 2、如果没有停止…...

conda 配置源

无论是Anaconda vs Miniconda vs Miniforge 中的哪个,只要使用conda就涉及源,换源的目的是为了加速包的获取 修改配置文件 通过修改用户目录下的 .condarc 文件来使用 不同系统下的 .condarc 目录如下: Linux: ${HOME}/.condarcmacOS: ${…...

使用nvm管理node.js版本,方便vue2,vue3开发

在Vue项目开发过程中,我们常常会遇到同时维护Vue2和Vue3项目的情况。由于不同版本的Vue对Node.js 版本的要求有所差异,这就使得Node.js 版本管理成为了一个关键问题。NVM(Node Version Manager)作为一款强大的Node.js 版本管理工具…...

Linux离线环境安装miniconda并导入依赖包

一、实现目标 在Linux离线环境中安装miniconda后,将联网环境中的依赖包导入到离线miniconda中,使得python项目在Linux离线环境中正常运行 二、前置条件 设备需要拷贝的文件联网Linux虚拟机miniconda安装包、依赖包、项目文件离线Linux虚拟机/ 三、实…...

【opencv】图像基本操作

一.计算机眼中的图像 1.1 图像读取 cv2.IMREAD_COLOR:彩色图像 cv2.IMREAD_GRAYSCCALE:灰色图像 ①导包 import cv2 # opencv读取的格式是BGR import matplotlib.pyplot as plt import numpy as np %matplotlib inline ②读取图像 img cv2.imread(…...

泛微OA编写后端Rest接口

泛微OA编写后端Rest接口 前言 具体实现 运行结果 注意要点 总结 前言 在泛微E9中,可以通过注解的方式来编写对外的接口,之前的版本都是通过编写servlet类,然后在web.xml文件中将这个类和访问路径进行编辑之后才好在浏览器中通过输入对应…...

AI助力下的PPT革命:DeepSeek 与Kimi的高效创作实践

清华大学出品《DeepSeek:从入门到精通》分享 在忙碌的职场中,制作一份高质量的PPT往往需要投入大量时间和精力,尤其是在临近截止日期时。今天,我们将探索如何借助 AI 工具 —— DeepSeek 和 Kimi —— 让 PPT 制作变得既快捷又高…...

002 SpringCloudAlibaba整合 - Feign远程调用、Loadbalancer负载均衡

前文地址: 001 SpringCloudAlibaba整合 - Nacos注册配置中心、Sentinel流控、Zipkin链路追踪、Admin监控 文章目录 8.Feign远程调用、loadbalancer负载均衡整合1.OpenFeign整合1.引入依赖2.启动类添加EnableFeignClients注解3.yml配置4.日志配置5.远程调用测试6.服务…...

计算机视觉之图像处理-----SIFT、SURF、FAST、ORB 特征提取算法深度解析

SIFT、SURF、FAST、ORB 特征提取算法深度解析 前言 在图像处理领域亦或是计算机视觉中,首先我们需要先理解几个名词: 什么是尺度不变? 在实际场景中,同一物体可能出现在不同距离(如远处的山和近处的树)…...

DeepSeek接入Siri(已升级支持苹果手表)完整版硅基流动DeepSeek-R1部署

DeepSeek接入Siri(已升级支持苹果手表)完整版硅基流动DeepSeek-R1部署 **DeepSeek** 是一款专注于深度学习和人工智能的工具或平台,通常与人工智能、机器学习、自动化分析等领域有关。它的主要功能可能包括:深度学习模型搜索&…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

centos 7 部署awstats 网站访问检测

一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...