
C++编程语言
文章平均质量分 76
C++基础知识总结
Techblog of HaoWANG
来源于生活,低于生活。
NDVC Lab——Nonlinear Dynamics and Vibration Control Laboratory, Hong Kong,China;
JH Lab ---- 季华实验室(广东省先进制造科学与技术实验室);
Major In Robotics: Modelling、Control Technology and Vision.
展开
-
Visual Studio常用快捷键
ctrl+-(shift+ctrl+-):移动光标到上次位置或相反,比如定位一个函数,转到函数定义后想回到函数使用处,则用ctrl+-,若又想回到函数定义处则可以按shift+ctrl+-F12:Go to Definition,到变量或函数定义的地方,如变量声明处,函数实现处。与ctrl+-配合使用非常方便 Ctrl+]:匹配选中的括号(大括号、小括号都行),在多层循环+判断语句时非常方便...原创 2019-02-19 10:36:03 · 320 阅读 · 0 评论 -
C++ Basic 32 : C++常对象和常成员函数详解
如果希望某个对象的值初始化以后就再也不被改变,则定义该对象时可以在前面加 const 关键字,使之成为常量对象(简称“常对象”)。例如:class CDemo{public:void SetValue(){ }};const CDemo Obj; // Obj 是常量对象在 Obj 被定义为常对象的情况下,下面这条语句是错误的,编译不能通过:Obj.SetValue();错误的原因:常对象一旦初始化后,其值就再也不能更改。因此,不能通过常量对象调用普通成员函数...原创 2021-10-31 12:45:22 · 236 阅读 · 0 评论 -
VSCode绘制UML类图
软件设计中,有好几种图需要画,比如流程图、类图、组件图等,我知道大部分人画流程图一般都会用微软的viso绘制,我之前也是这个习惯。viso画图有个不好的地方是需要时刻去调整线条和边框已达到简洁美观,今天我给大家介绍一款程序员画图神器PlantUML,一款你用了就爱上的画图软件!VsCode以插件的形式支持了这款画图神器,还不知道VsCode?...原创 2021-06-03 16:21:08 · 24919 阅读 · 3 评论 -
VSCode常用插件合集
1.Markdown文件预览(VScode)1.打开vscode在插件寻找Markdown Preview Enhanced,并点击install.2.原创 2021-06-02 10:46:48 · 427 阅读 · 0 评论 -
C++ Basic 32 : 内存四区- 变量的生命周期是怎么管理的?
C++ Basic 系列文章目录C++ Basic 32 : 内存四区- 变量的生命周期是怎么管理的?C++ Basic 31: 函数指针与指针函数C++ Basic 30 :箭头-> 双冒号:: 点号.操作符区别C++Basic 29 :接口(抽象类)....目录C++ Basic 系列文章目录一、 内存四区 1 栈区 2 堆区 3 数据区 (包含常量区和全局区) 4 代码区二、 堆、栈内存映射与实现原理三、内存四区的建立流程一...原创 2021-04-11 12:06:33 · 289 阅读 · 0 评论 -
C++ Basic 31 : 函数指针与指针函数
C++ Basic 系列文章目录C++ Basic 31: 函数指针与指针函数C++ Basic 30 :箭头-> 双冒号:: 点号.操作符区别C++Basic 29 :接口(抽象类)....目录C++ Basic 系列文章目录前言一、指针函数指针函数定义:指针函数的写法:示例:二、函数指针总结前言在学习C++面向对象的编程语言过程中发现“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚。一、指针函数...原创 2020-10-22 11:16:28 · 315 阅读 · 0 评论 -
C++ Basic 30 -- 箭头-> 双冒号:: 点号.操作符区别
首先介绍一下C++中的结构体。对于一个结构体来说,struct MyStruct {int member_a;};如果有个变量MyStruct s,那么使用其中的成员元素时可以用s.member_a = 1;如果采用指针方法访问,比如MyStruct * ps,那么同样的访问必须用箭头号:ps->member_a = 1;::只用在类成员函数和类成员变量...原创 2019-10-28 13:29:39 · 261 阅读 · 0 评论 -
C++ Basic 29 -- 接口(抽象类)
目录C++接口(抽象类)抽象类的实例设计策略C++接口(抽象类)接口描述了类的行为和功能,而不需要完成类的特定实现。C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 "= 0" 来指定的,如下所示:class Bo...原创 2019-10-08 13:38:32 · 144 阅读 · 0 评论 -
C++ Basic 28 -- 数据封装
目录C++数据封装数据封装的实例设计策略C++数据封装所有的 C++ 程序都有以下两个基本要素:程序语句(代码):这是程序中执行动作的部分,它们被称为函数。 程序数据:数据是程序的信息,会受到程序函数的影响。封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的 OO...原创 2019-10-08 13:30:29 · 242 阅读 · 0 评论 -
C++ Basic 27 --- 数据抽象
目录C++数据抽象访问标签强制抽象数据抽象的好处数据抽象的实例设计策略C++数据抽象数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。数据抽象是一种依赖于接口和实现分离的编程(设计)技术。让我们举一个现实生活中的真实例子,比如一台电视机,您可以打开和关闭、切换频道、调整音量、添加外部组件(如喇叭、录像机、DVD...原创 2019-10-08 13:06:53 · 351 阅读 · 0 评论 -
C++ Basic 26 -- 多态
C++多态多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。下面的实例中,基类 Shape 被派生为两个类,如下所示:实例#include <iostream> using namespace std; class Shape { ...原创 2019-10-08 12:59:46 · 213 阅读 · 0 评论 -
C++ Basic 25 -- 运算符重载
目录C++重载运算符和重载函数C++ 中的函数重载C++ 中的运算符重载可重载运算符/不可重载运算符运算符重载实例小结:C++重载运算符和重载函数C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。当您调...原创 2019-10-08 12:24:15 · 218 阅读 · 0 评论 -
C++ Basic 24 面对对象:C++ 继承
目录C++继承基类 & 派生类访问控制和继承继承类型多继承C++继承面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行时间的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的...原创 2019-09-25 20:59:01 · 287 阅读 · 0 评论 -
C++ 20.5 标准头文件库 -- ctime用法
此头文件原作为<time.h>存在于 C 标准库。此头文件是C 风格日期和时间库的一部分。宏常量 CLOCKS_PER_SEC 每秒的处理器始时钟嘀嗒数 (宏常量) NULL 实现定义的空指针常量 (宏常量) 类型 clock_t 进程运行时间 (typedef) si...原创 2019-09-30 12:50:10 · 3564 阅读 · 0 评论 -
C++ Basic 23面对对象:特性总结(2)友元、内联、this指针、指向类的指针、静态成员
目录1. C++友元函数2. C++内联函数3. C++this 指针4. C++指向类的指针5. C++类的静态成员静态函数成员1. C++友元函数类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。友元可以...原创 2019-09-25 20:52:16 · 273 阅读 · 0 评论 -
C++ Basic 22 面向对象:特性总结(1)成员函数、修饰符、构造析构函数、拷贝构造函数
目录1. C++类成员函数2. C++类访问修饰符公有(public)成员私有(private)成员保护(protected)成员3. C++类构造函数 & 析构函数类的构造函数带参数的构造函数使用初始化列表来初始化字段类的析构函数4. C++拷贝构造函数1. C++类成员函数类的成员函数是指那些把定义和原型写在类定义内部的...原创 2019-09-25 14:36:52 · 264 阅读 · 0 评论 -
C++ Basic 21 面对对象: 类与对象
目录C++类 & 对象C++ 类定义定义 C++ 对象访问数据成员类 & 对象详解C++类 & 对象C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在...原创 2019-09-25 14:04:50 · 231 阅读 · 0 评论 -
C++ Basic 20: C++ 日期与时间
目录C++日期 & 时间当前日期和时间使用结构 tm 格式化时间C++日期 & 时间C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件。有四个与时间相关的类型:clock_t、time_t、size_t和...原创 2019-09-25 13:58:36 · 481 阅读 · 0 评论 -
C++ Basic 19: 基本输入输出流
目录C++基本的输入输出I/O 库头文件标准输出流(cout)标准输入流(cin)标准错误流(cerr)标准日志流(clog)C++基本的输入输出C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁...原创 2019-09-25 13:56:06 · 242 阅读 · 0 评论 -
C++ Basic 18 :C++数据结构
目录C++数据结构定义结构访问结构成员结构作为函数参数指向结构的指针typedef 关键字C++数据结构C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构是 C++ 中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:Title Aut...原创 2019-09-25 13:50:35 · 244 阅读 · 0 评论 -
C++ Basic 17 :20道必须掌握的C++面试题
在面试C++方面的工作时,经常会遇到各种面试题,这对应聘人员的知识掌握能力要求较高。本文将为大家带来的就是20道必须掌握的C++面试题,不要错过哦!问1:请用简单的语言告诉我C++ 是什么?答:C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是最受...原创 2019-09-23 18:39:37 · 365 阅读 · 0 评论 -
C++ Basic 16: C++ 指针
C++指针学习 C++ 的指针既简单又有趣。通过指针,可以简化一些 C++ 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C++ 程序员,学习指针是很有必要的。正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址:...原创 2019-09-15 13:57:25 · 170 阅读 · 0 评论 -
C++ Basic 15: C++ 字符串
C++字符串C++ 提供了以下两种类型的字符串表示形式:C 风格字符串 C++ 引入的 string 类类型C 风格字符串C风格的字符串起源于 C语言,并在 C++ 中继续得到支持。字符串实际上是使用null字符 '\0' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。下面的声明和初始化创建了一个 "Hello" 字符串。由于在数组...原创 2019-09-15 13:52:55 · 209 阅读 · 0 评论 -
C++ Basic 14: C++源文件(.cpp)和头文件(.h)该怎么写才规范?
这个问题在许多C++程序员看来会很搞笑,“这么简单的问题还用得着你废话!”。但是由于本人生性愚钝,学C++的时候,确实花了很久的时间都搞不明白,只是会写一个文件,但不会写一个工程。而用C++编写比较大型的项目时,文件的分割管理确实确实是非常必要的。下面就非常简洁明了地谈谈头文件(.h)和源文件(.cpp)应该怎么写。目录头文件(.h):源文件(.cpp):第二篇...原创 2019-03-09 14:19:39 · 6366 阅读 · 1 评论 -
C++ 笔记 13: static思考与总结
问题焦点:static函数、static变量、static成员函数、static成员变量的相同与不同?内存四区:栈(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值(除static),其操作方式类似于数据结构中的栈。 堆(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆(优先队列)是两回事,分配方式倒是类似于链...原创 2019-03-09 17:39:14 · 228 阅读 · 0 评论 -
C++ Basic 12:C++动态内存管理
1、C++动态内存动态内存在 C++ 中是必不可少的。C++ 程序中的内存主要分为两个部分:(注:在c或C++语言中,编译器将内存分为四区,称之为“内存四区”模型,即:栈区、堆区、全局区和代码区。在这里,我们主要关注与使用者密切相关的堆区和栈区。)栈区:在函数内部声明的所有变量都将占用栈内存。(“栈区”不是“栈”,而是编译器和操作系统依照类似于栈的操作方式来对部分内存空间进行操作和管...原创 2018-11-04 20:59:57 · 246 阅读 · 0 评论 -
C++ Basic 11 - - - 类与对象
一、C++类的定义 C++中使用关键字class来定义类, 其基本形式如下:class 类名{public://行为或属性protected://行为或属性private://行为或属性};示例: 定义一个点(Point)类, 具有以下属性和方法: ■ 属性: x坐标, y坐标 ■ 方法: 1.设置x...原创 2019-01-31 23:10:58 · 253 阅读 · 0 评论 -
C++ Basic 10.5 : C++关于数组作为函数参数的问题
本文需要解决C++中关于数组的2个问题:1. 数组作为函数参数,传值还是传址?2. 函数参数中的数组元素个数能否确定?先看下面的代码。#include <iostream>using namespace std;void testArrayArg(int a[]){ cout << endl; cout << "i...原创 2019-02-21 12:55:04 · 919 阅读 · 0 评论 -
C++ Basic 10 - - 数组与数组指针
目录C++数组声明数组初始化数组访问数组元素Array 是固定大小的,不能额外增加元素.当我们想定义不固定大小的字符时,可以使用 vector(向量) 标准库。C++指向数组的指针C++数组C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独...原创 2019-03-12 10:37:51 · 263 阅读 · 0 评论 -
C++ BAsic 09 --- C++ 引用 '&'
C++引用引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。C++ 引用 vs 指针引用很容易与指针混淆,它们之间有三个主要的不同:不存在空引用。引用必须连接到一块合法的内存。 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。 引用必须在创建时被初始化。...原创 2019-03-23 13:36:49 · 237 阅读 · 0 评论 -
C++ Basic 08--- 存储类
Table of ContentsC++存储类auto 存储类register 存储类static 存储类extern 存储类mutable 存储类thread_local 存储类总结:静态局部变量static:thread_local 在跨线程时使用:C++存储类存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它...原创 2019-02-23 09:57:45 · 278 阅读 · 0 评论 -
C++ Basic 07.5 --- 变量和函数命名规范
参考:https://blog.youkuaiyun.com/k_shmily/article/details/52396869Windows环境:1. 共性规则本节论述的共性规则是被大多数程序员采纳的,我们应当在遵循这些共性规则的前提下,再扩充特定的规则,如3.2节。【规则1-1】标识符应当直观且可以拼读,可望文知意,不必进行“解码”。标识符最好采用...原创 2019-02-19 10:22:47 · 2076 阅读 · 0 评论 -
C++ Basic 07---函数
Table of ContentsC++函数定义函数函数声明调用函数函数参数参数的默认值Lambda 函数与表达式定义Lambda函数的语法C++ 随机数函数实例C++函数函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数main(),所有简单的程序都可以定义其他额外的函数。您可以把代码划分到不同的函数中。如何...原创 2019-03-04 15:56:57 · 272 阅读 · 0 评论 -
C++ Basic 06--- 运算符
Table of ContentsC++运算符算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符C++ 中的运算符优先级C++运算符运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 内置了丰富的运算符,并提供了以下类型的运算符:算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符本章将逐一介绍算术运算符...原创 2019-02-23 10:38:17 · 232 阅读 · 1 评论 -
C++ Basic 05.5 -- C++ #define 和const 区别
目录定义常量#define 预处理器实例const 关键字实例总结宏定义 #define 和常量 const 的区别const关键字请注意,把常量定义为大写字母形式,是一个很好的编程实践。定义常量在 C++ 中,有两种简单的定义常量的方式:使用#define预处理器。 使用const关键字。#define 预处理器下面是使用 #...原创 2019-09-23 20:57:48 · 223 阅读 · 0 评论 -
C++ Basic 05-- C++常量总结
目录Table of Contents目录C++常量整数常量浮点常量布尔常量字符常量字符串常量定义常量#define 预处理器const 关键字总结宏定义 #define 和常量 const 的区别const关键字C++常量常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。常量可以是任何的基本数据类型,可分为整...原创 2019-02-16 13:45:57 · 246 阅读 · 0 评论 -
C++Basic 04.5 -- 全局变量、局部变量、静态变量等详解
全局变量、局部变量、静态全局变量、静态局部变量的区别C++ 变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为 6 种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。从作用域看:全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变...原创 2019-09-23 20:48:02 · 298 阅读 · 0 评论 -
C++ Basic 04---变量与变量作用域
目录Table of Contents目录C++变量类型C++ 中的变量定义C++ 中的变量声明C++ 中的左值(Lvalues)和右值(Rvalues)C++变量作用域局部变量全局变量初始化局部变量和全局变量C++变量类型变量其实只不过是程序可操作的存储区的名称。C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都...原创 2019-01-13 13:15:23 · 440 阅读 · 0 评论 -
C++ Basic 03--数据类型
目录Table of Contents目录C++数据类型基本的内置类型typedef 声明枚举类型关于 typedef 的几点说明:typedef 与 #define 的区别:C++数据类型使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。您可能需要存储...原创 2019-01-12 14:02:02 · 293 阅读 · 0 评论 -
C++ Basic 02--基本语法
目录Table of Contents目录C++基本语法C++ 程序结构编译 & 执行 C++ 程序C++ 中的分号 & 语句块C++ 标识符C++ 关键字C++ 中的空格C++注释C++基本语法C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。对象 ...原创 2019-01-12 12:56:40 · 442 阅读 · 0 评论