C++ OOP Feature Conclusion (更新中)
目录
1.类与对象
1.1 基本概念(继承、封装、抽象、多态)
1.2类的声明
1.3成员函数(对象所占空间取决于数据成员,和成员函数无关)
1.4数据成员(不能在类中初始化)
1.5构造与析构函数(自动执行,顺序为栈)
1.6对象的定义
1.7对象数组(析构过程为栈)className instances[size] ={Obj1(),Obj2(...),...}
1.8对象指针(this)
1.9对象成员的访问(成员运算符访问、指向运算符访问、引用)
1.10对象与const
1.11 对象的动态创建与释放 className *instance = new className(params...) ; delete instance
1.12对象的赋值与复制
2.继承与派生(派生会自动屏蔽基类同名成员;)
2.1基本概念(三种继承方式)
2.2 单继承
2.3派生类构成
2.4访问属性
2.5构造与析构(先执行基类构造,后执行基类虚构)
2.6多继承 class className:limitation baseClass1,limitation baseClass2{...}
2.7对象关系(派生类可以赋值给基类)
3.多态与虚函数
3.1基本概念(编译时多态、运行时多态)
3.2向上类型转换
3.3功能早绑定(编译阶段)
3.4功能晚绑定(运行阶段,虚函数:virtual returnType functionName (params...))
3.5虚析构函数
3.6虚函数与重载的区别(p177)
3.7纯虚函数与抽象类
4.友元与静态
4.1基本概念
4.2友元函数 friend returnType functionName(params...) 在类中声明
4.3友元类 friend className
4.4静态数据成员(只能在类中声明,类外初始化)
4.5静态成员函数(没有this指针,不能访问非静态成员,除非传入对象)
5.运算符重载
5.1基本概念
5.2重载规则
6.泛型编程
6.1 基本概念
6.2 函数模板
6.3类模板
7.STL
1.类与对象
1.1 基本概念(继承、封装、抽象、多态)
类
对象
访问限制符
1.2类的声明
1.3成员函数(对象所占空间取决于数据成员,和成员函数无关)
1.4数据成员(不能在类中初始化)
1.5构造与析构函数(自动执行,顺序为栈)
构造函数(系统提供默认构造函数)
参数初始化表
重载
析构函数(只能有一个,不能重载,无参)
全局对象的调用时间
局部对象的调用时间
静态局部对象调用时间
1.6对象的定义
1.7对象数组(析构过程为栈)className instances[size] ={Obj1(),Obj2(...),...}
1.8对象指针(this)
1.9对象成员的访问(成员运算符访问、指向运算符访问、引用)
1.10对象与const
常对象(无法调用非const成员函数) const className instance() | className const instance()
常对象成员
常成员函数(只能访问数据成员,不能修改) returnType functionName(params...) const
常数据成员
指向对象的常指针(不能修改指针)className * const pointerName = &instance
指向常对象的指针(常对象只能用指向常对象的指针,不能使用普通指针)const className * pointerName
1.11 对象的动态创建与释放 className *instance = new className(params...) ; delete instance
1.12对象的赋值与复制
赋值(赋值运算符 = 默认重载,含指针数据成员的类必须自己实现运算符重载,否则产生指针悬挂问题 )object1 = object2
复制(拷贝构造函数:className (const className &obj)) className instance(instance1) | className instance = instance1
两者异同:
2.继承与派生(派生会自动屏蔽基类同名成员;)
2.1基本概念(三种继承方式)
2.2 单继承
2.3派生类构成
2.4访问属性
2.5构造与析构(先执行基类构造,后执行基类虚构)
构造 className(params...):baseClass(paramValue...){}
2.6多继承 class className:limitation baseClass1,limitation baseClass2{...}
2.7对象关系(派生类可以赋值给基类)
3.多态与虚函数
3.1基本概念(编译时多态、运行时多态)
3.2向上类型转换
3.3功能早绑定(编译阶段)
3.4功能晚绑定(运行阶段,虚函数:virtual returnType functionName (params...))
3.5虚析构函数
3.6虚函数与重载的区别(p177)
3.7纯虚函数与抽象类
纯虚函数 virtual returnType functionName(params...) =0
抽象类 (具有一个纯虚函数的类为抽象类,只能作为接口,不能生成对象)
4.友元与静态
4.1基本概念
4.2友元函数 friend returnType functionName(params...) 在类中声明
4.3友元类 friend className
4.4静态数据成员(只能在类中声明,类外初始化)
4.5静态成员函数(没有this指针,不能访问非静态成员,除非传入对象)
5.运算符重载
5.1基本概念
5.2重载规则
6.泛型编程
6.1 基本概念
6.2 函数模板
函数模板定义
函数模板实例化(编译器自动识别)
模板参数(注意:c++不对模板参数做任何类型转换,需要手动转换。不能提供参数默认值)
模板函数重载(指的是模板函数也可以被普通函数重载)
6.3类模板
类模板定义
类模板实例化(className<TypeName> instance)
类模板参数(可以提供参数默认值,只能放在形参表的最右端,否则出错)
7.STL
algorithm.h
deque.h(双向队列)
functiona.h
iterator.h
vector.h(向量)
list.h(双向链表)
map.h(键值映射)
memory.h
numeric.h
queue.h(队列)
set.h(不重复集合和可重复集合)
stack.h(堆栈)
utility.h
相关文章:
C++ OOP Feature Conclusion (更新中)
目录 1.类与对象 1.1 基本概念(继承、封装、抽象、多态) 1.2类的声明 1.3成员函数(对象所占空间取决于数据成员,和成员函数无关) 1.4数据成员(不能在类中初始化) 1.5构造与析构函数(…...

【HTTP】Cookie、Session、Token以及Cookie优化
Cookie、Session、TokenCookie优化Cookie、Session、Token 在开始介绍Cookie安全之前,我们先来了解一下实现授权的方式。 在登录功能中,为了记住登录成功后的信息,在客户端,我们通常会使用Cookie来记录,但是…...
npm之报错:Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules‘
1.报错 363 error [Error: EACCES: permission denied, rename ‘/usr/local/lib/node_modules/tldr’ -> ‘/usr/local/lib/node_modules/.tldr-8nq4AGAt’] { 363 error errno: -13, 363 error code: ‘EACCES’, 363 error syscall: ‘rename’, 363 error path: ‘/usr/…...
「SQL面试题库」 No_30 超过5名学生的课
🍅 1、专栏介绍 「SQL面试题库」是由 不是西红柿 发起,全员免费参与的SQL学习活动。我每天发布1道SQL面试真题,从简单到困难,涵盖所有SQL知识点,我敢保证只要做完这100道题,不仅能轻松搞定面试࿰…...
自定义maven插件,在项目中命令启动springboot并加载当前项目资源
背景 最近在制定团队内公用的基础框架,基于单应用多module的架构思路,使用maven管理项目依赖,在项目中定义了一个springboot模块,该模块依赖具体的业务实现模块,启动后通过扫描路径下的类加载服务,业务开发…...
Linux系统【Centos7】更新内核更新软件详细教程
更新内核: 1. 打开终端,输入命令 sudo yum update,等待更新完成。 2. 重启系统,输入命令 sudo reboot。 3. 在 GRUB 引导界面,选择最新的内核版本,按下回车键进入系统。 4. 在终端中输入命令 uname -r&…...
C++ 中new/delete与malloc/free详解
文章目录前言一、new/delete1. 序言2. 使用方法2.1. new 和 delete 基本语法2.2. new 和 delete 的底层实现原理3. 底层原理3.1. operator new 和 operator delete3.2. new 和 delete 的底层实现原理4. 注意事项5. 总结二、malloc/free1. 序言2. 使用方法2.1. malloc 和 free 基…...

crm软件哪个好?该如何选择?
crm软件哪个好?该如何选择? 首先我们需要明确一下什么是好的CRM系统,优质的CRM系统应该具备以下优势: 1)提高销售效率:通过CRM系统,销售人员可以跟踪客户互动历史和交易记录,了解客…...

蓝桥杯第22天(Python)(疯狂刷题第5天)
题型: 1.思维题/杂题:数学公式,分析题意,找规律 2.BFS/DFS:广搜(递归实现),深搜(deque实现) 3.简单数论:模,素数(只需要…...

软件测试面试常问的问题有哪些?
互联发展是很快的,每年都会有新语言的诞生。 我干测试已经三年了,主要负责web功能测试,java编写接口自动化,APP功能测试,APP 接口自动化(也是用的java),面过得测试也差不多30个&…...
js之文件信息读取篇高级基础
文章目录js之文件信息读取(FileReader)获取文件相关信息的两种方式js原生拖拽事件js之文件信息读取(FileReader) 首先这里面会讲一些知识点 bolb 对象FileReader对象 let blob new Blob([heewwekgewgwer], { type: text/plain …...

SQL Server的死锁说明
死锁指南一、了解死锁二、检测并结束死锁2.1、可能死锁的资源三、处理死锁四、最大限度地减少死锁4.1、以相同的顺序访问对象4.2、避免事务中的用户交互4.3、保持交易简短且在一个批次中4.4、使用较低的隔离级别4.5、使用基于行版本控制的隔离级别4.6、使用绑定连接4.7、停止事…...
关于#define的一些小知识
目录 一,#define的声明格式: 二,#define宏的作用是为了完成替换 #define的替换规则: 三,#define使用时常犯的错误 四,宏与函数的比较 4.1,什么时候使用宏? 4.1,…...

rabbitmq普通集群与镜像集群搭建
1.准备三台centos7主机,并关闭防火墙与selinux 2.安装rabbitmq环境必备的Erlang(以下所有操作三台主机均需要执行) 执行以下命令下载配置erlang yum源 curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash使用yum命…...
session和jwt哪个更好
session和jwtsession优点缺点jwt优点缺点总结session 优点 原理简单,易于学习。用户信息存储在服务端,可以快速封禁某个用户。 缺点 占用服务端内存,硬件成本高。多进程,多服务器时,不好同步-需要使用第三方缓存&a…...

基于TPU-MLIR实现UNet模型部署-决赛答辩02
队伍:AP0200023 目录 初赛 一、 模型导出优化 1.1 直接倒出原始模型并转换 1.2 导出模型前处理 1.2.1 导出Resize 1.2.2 导出归一化 1.3导出模型后处理 1.3.1导出 Resize 与 1.3.2导出 ArgMaxout 1.3.3导出特征转RGB 复赛 一、 确定baseline 二、优化模…...

Maven高级-分模块开发依赖管理
Maven高级-分模块开发&依赖管理1,分模块开发1.1 分模块开发设计1.2 分模块开发实现1.2.1 环境准备1.2.2 抽取domain层步骤1:创建新模块步骤2:项目中创建domain包步骤3:删除原项目中的domain包步骤4:建立依赖关系步骤5:编译maven_02_ssm项目步骤6:将项目安装本地…...

《安富莱嵌入式周报》第308期:开源带软硬件安全认证的PLC设计,开源功率计,可靠PID实现,PR2机器人设计文件全开源,智能手表设计WASP-OS
周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1F24y157QE 《安富莱嵌入式周报》第308期:开源带软…...

代码随想录算法训练营第五十六天 | 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
583. 两个字符串的删除操作 动规五部曲 1、确定dp数组(dp table)以及下标的含义 dp[i][j]:以i-1为结尾的字符串word1,和以j-1位结尾的字符串word2,想要达到相等,所需要删除元素的最少次数。 2、确定递推…...

Sip协议
简介 SIP(Session Initiation Protocol,会话初始协议)是一个用于建立、更改和终止多媒体会话的应用 层控制协议,其中的会话可以是 IP 电话、多媒体会话或多媒体会议。SIP 是 IETF 多媒体数据和控 制体系结构的核心协议࿰…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
GeoServer发布PostgreSQL图层后WFS查询无主键字段
在使用 GeoServer(版本 2.22.2) 发布 PostgreSQL(PostGIS)中的表为地图服务时,常常会遇到一个小问题: WFS 查询中,主键字段(如 id)莫名其妙地消失了! 即使你在…...
基于Java的离散数学题库系统设计与实现:附完整源码与论文
JAVASQL离散数学题库管理系统 一、系统概述 本系统采用Java Swing开发桌面应用,结合SQL Server数据库实现离散数学题库的高效管理。系统支持题型分类(选择题、填空题、判断题等)、难度分级、知识点关联,并提供智能组卷、在线测试…...

【读代码】从预训练到后训练:解锁语言模型推理潜能——Xiaomi MiMo项目深度解析
项目开源地址:https://github.com/XiaomiMiMo/MiMo 一、基本介绍 Xiaomi MiMo是小米公司开源的7B参数规模语言模型系列,专为复杂推理任务设计。项目包含基础模型(MiMo-7B-Base)、监督微调模型(MiMo-7B-SFT)和强化学习模型(MiMo-7B-RL)等多个版本。其核心创新在于通过…...
【AI大模型】Transformer架构到底是什么?
引言 —— 想象一台能瞬间读懂整本《战争与和平》、精准翻译俳句中的禅意、甚至为你的设计草图生成前端代码的机器——这一切并非科幻,而是过去七年AI领域最震撼的技术革命:Transformer架构创造的奇迹。 当谷歌在2017年揭开Transformer的神秘面纱时&…...

(33)课54:3 张表的 join-on 连接举例,多表查询总结。数据库编程补述及游标综合例题。静态 sqL与动态sqL(可带参数)
(112)3 张表的 join-on 连接举例 : (113) 多表查询总结 : (114)数据库编程补述 : 综合例题 : 以上没有动手练习,不知道这样的语法是否…...