![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 85
Aiky哇
专注于数据库、go、性能优化,对待当下的态度,决定你未来的高度
展开
-
《c++ Primer Plus 第6版》读书笔记(6)
如果派生类没有重新定义函数,将使用该函数的基类版本。如果派生类位于派生连中,则将会使用最新的虚函数版本。原创 2022-09-20 23:25:10 · 345 阅读 · 0 评论 -
《c++ Primer Plus 第6版》读书笔记(5)
接口是一个共享框架,供两个系统之间(比如任何计算机系统之间或者人和计算机之间)交互时使用。C++关键字中class指出了这些代码定义了一个类设计。使用类定义接口时,将会自动指定使用对象的规则。1.访问控制关键字private和public也是新的,描述了对类成员的访问控制。使用类对象的程序都可以直接访问公有部分,但是只能通过公有成员函数或者友元函数来访问对象的私有成员。防止程序直接访问数据被称为数据隐藏。类设计尽可能将公有接口和实现细节分开。原创 2022-09-19 00:55:26 · 365 阅读 · 0 评论 -
《c++ Primer Plus 第6版》读书笔记(4)
如果在代码块中声明了变量,在该代码块中又定义了新代码块,声明了相同的变量,那么新的定义会隐藏旧的定义,新定义可见,就定义暂时不可见,程序离开里代码块后,旧定义重新可见。名称空间是开放的,可以将新的名称加入到已有的名称空间中。如果在一个文件中创建一个全局静态变量,另一个文件中想要创建一个同名变量,那么仅仅省略extern是不够的,这样会违反C++的单定义规则。在旧版的C中,旧版本中的关键字auto,是于显示指出变量为自动存储的,但是用的人很少,所以在新版本C中用新的含义代替了老的使用方法。原创 2022-09-13 01:08:46 · 324 阅读 · 0 评论 -
《c++ Primer Plus 第6版》读书笔记(3)
编译器用过名称修饰,将名称转换为不太好看的内部表示,来描述接口。以此来跟踪每一个重载函数。比如 long MyFunc(int,float);将转换为?添加的一组符号随函数特征标而异,使用的约定随编译器而异。原创 2022-09-11 00:43:45 · 163 阅读 · 0 评论 -
《c++ Primer Plus 第6版》读书笔记(2)
string类型位于std名称空间内。string和字符数组的区别在于,strnig对象可以声明为简单变量,而不是数组。结构是C++ OOP的基石。使用关键字struct来声明结构体,结构体重的每一项被称为结构成员。C++允许直接使用结构体名创建变量。可以使用成员运算符(.)来访问各个成员。原创 2022-09-08 17:26:37 · 226 阅读 · 0 评论 -
linux下安装/升级GCC到较高版本
安装GCC最简单的方式当然是【yum -y install gcc】但是我的机器上安装下来后,其版本是4.8.5,感觉有点低,所以想升级一下(7.2.0, 8.2.0之类的版本)。于是需要手动安装。原创 2022-09-05 23:32:50 · 5088 阅读 · 0 评论 -
《c++ Primer Plus 第6版》读书笔记(1)
略C语言新增了诸如控制结构和函数等特性。C++增加了对面向对象编程和泛型编程的支持。ISOC++标准(C++98/03和C++11)为确保众多实现的兼容提供了基础。类是C++中面向对象编程的核心概念之一。cout是一个ostram类对象,cin是一个istream类对象,也是在iostream中定义的。类描述了一种数据类型的全部属性(包括可使用它执行的操作),对象是根据这些描述创建的实体。就想函数可以来自函数库一样,类也可以来自类库。...原创 2022-08-29 17:02:16 · 590 阅读 · 0 评论 -
mysql8.0 hash join源码分析
hash_join_chunkHashJoinChunk是用来存储行并落盘的类型,表分区成小文件时也可以用。将列写入 HashJoinChunk 时,我们使用 StoreFromTableBuffers 将必要的列转换为适合存储在磁盘上的格式。方便的是,StoreFromTableBuffers 创建了一个连续的字节范围和相应的长度,可以轻松有效地将其写到文件中。从文件中读回行时,LoadIntoTableBuffers() 用于将行放回表记录缓冲区。具体用法如下:HashJoinCh原创 2021-10-13 16:42:51 · 578 阅读 · 0 评论 -
二分查找,左边界,右边界
查找左边界保证返回的下脚标id,id左侧的值均比查找值小,右侧的值大于或者等于查找值。比如a[0,1,1,3,4,5,5,5,7]查找1,返回1;查找2,返回3;查找5,返回5;查找-1,返回0;查找8,返回9;int left_bound(int[] nums, int target) { if (nums.length == 0) return -1; int left = 0; int right = nums.length; // 注意.原创 2021-05-13 12:04:09 · 441 阅读 · 0 评论 -
c++源文件 不同后缀(.cc .cpp .C .cp)的区别
参考了C++ Primer Plus第五版中文版 P8C++实现 源代码的扩展名UNIX C、cc、cxx、cGNU C++ C、cc、cxx、cpp、c++Borland C++ CppMicrosoft Visual C++ cpp、cxx、ccAndroid系统源码中以cc为后缀GNU GCC...转载 2020-09-22 11:54:49 · 3735 阅读 · 1 评论 -
你了解c++中的关键字virtual吗?
virtual在英文中表示“虚”、“虚拟”的含义。c++中的关键字“virtual”主要用在两个方面:虚函数与虚基类。下面将分别从这两个方面对virtual进行介绍。1.虚函数虚函数源于c++中的类继承,是多态的一种。在c++中,一个基类的指针或者引用可以指向或者引用派生类的对象。同时,派生类可以重写基类中的成员函数。这里“重写”的要求是函数的特征标(包括参数的数目、类型和顺序)以及返回值都必须与基类中的函数一致。如下所示:class base{ int a,b;public: voi转载 2020-09-16 11:18:28 · 684 阅读 · 0 评论 -
后端系统开发利器,gflags概述
简介gflags是Google的一个开源项目,用于解析程序运行参数。gflags简单易用,它的好处在于统一配置格式,减少开发工作量。在工程实践中,gflags在简化开发和测试方面表现非常出色,它还有一个很棒的功能是支持多人合作开发。gflags在2008年首次推出,至今已有10年时间,目前有很多公司都在用gflags。使用下面的例子简单展示了C++语言中gflags的基本用法。simple_gflags.cpp#include <iostream>#include "gf转载 2020-09-15 11:08:11 · 1265 阅读 · 1 评论 -
C++ explicit关键字详解
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString // 没有使用explicit关键字的类声明, 即默认为隐式声明 { public: char *_pstr; int _s转载 2020-09-02 11:20:21 · 373 阅读 · 0 评论