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 多媒体数据和控 制体系结构的核心协议࿰…...

RandomAccessFile类 断点续传
文章目录学习链接RandomAccessFile构造方法实现的接口DataOutputDataInputAutoCloseable重要的方法多线程读写同一个文件(多线程复制文件)代码1代码2断点续传FileUtils学习链接 RandomAccessFile详解 Java IO——RandomAccessFile类详解 java多线程-断点…...

SpringCloud微服务技术栈的注册中心Eureka
文章目录SpringCloud微服务技术栈的注册中心Eureka简介Eureka特点操作步骤环境准备创建Eureka Server注册服务提供方调用服务消费方总结SpringCloud微服务技术栈的注册中心Eureka 简介 在微服务架构中,服务的数量庞大,而且每个服务可能会有多个实例。此…...

Unity最新热更新框架 hybridclr_addressable
GitHub:YMoonRiver/hybridclr_addressable: 开箱即用的商业游戏框架,集成了主流的开发工具。将主流的GameFramework修改,支持Addressable和AssetBundle,已完善打包工具和流程。 (github.com) # 新增GameFramework Addressables 开箱即用 # 新…...

【c语言】一维数组***特性、存储原理
创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…...

[oeasy]python0133_[趣味拓展]好玩的unicode字符_另类字符_上下颠倒英文字符
另类字符 回忆上次内容 上次再次输出了大红心♥ 找到了红心对应的编码黑红梅方都对应有编码 原来的编码叫做 ascii️ \u这种新的编码方式叫unicode包括了 中日韩字符集等 各书写系统的字符集 除了这些常规字符之外 还有什么好玩的东西呢? 颠倒字符 这个网站可以…...

找凶手,定名次,字符串旋转,杨氏矩阵
1.找凶手问题: //题目名称: //猜凶手 //题目内容: //日本某地发生了一件谋杀案,警察通过排查确定凶手必为4个嫌疑犯的一个。 //以下为4个嫌疑犯的供词: //A说:不是我 //B说:是C //C说ÿ…...

Python 进阶指南(编程轻松进阶):十四、实践项目
原文:http://inventwithpython.com/beyond/chapter14.html 到目前为止,这本书已经教会了你编写可读的 Python 风格代码的技巧。让我们通过查看两个命令行游戏的源代码来实践这些技术:汉诺塔和四人一排。 这些项目很短,并且基于文…...

Redis的五种数据类型及应用场景
Redis是一个开源的key-value数据库。 五种数据类型 String,List, Set,SortedSet,Hash List类型可以存储多个String。 Set类型可以存储不同的String。 SortedSet可以存储String的排序。 Hash可以存储多个key-value对。 String …...

c++List的详细介绍
cList详细使用 write in front 作者: 不进大厂不改名 专栏: c 作者简介:大一学生 希望能向其他大佬和同学学习! 本篇博客简介:本文主要讲述了一种新容器list的使用方法,相信你在学了后,能够加深…...

Heap堆的升序排序
在heap堆中,大根堆是一种特殊的堆,它满足下列性质:对于任意一个非叶子节点i,其左右子节点的值均小于等于它本身的值。 在大根堆中,堆顶元素永远是值最大的元素,所以将堆顶元素不断取出来,就相当…...