自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 C++之boost智能指针

因为类Y中有X的对象,这样如果X类改变,所有Y的对象都需要重新编译,因为此时类Y的大小已经改变,这样客户程序就不仅仅依赖于接口,还依赖于库里面的具体实现。由于智能指针本身是一个栈对象,它的作用域结束的时候,自动调用析构函数,从而调用了delete释放了堆对象。将对象改成指针(32位的4个字节,64位8个字节,这是不会变化的)如果一定要使用到类的对象的话,那就把类的对象都抽象到同一个类Impl中,然后通过Impl的指针来访问。智能指针的本质思想是:将堆对象的生存期,用栈对象来管理。这个栈对象就是智能指针。

2024-07-04 17:00:16 443

原创 C++之STL(十二)

【代码】C++之STL(十二)

2024-06-27 17:29:04 299

原创 C++之STL(十一)

【代码】C++之STL(十一)

2024-06-27 16:28:10 231

原创 C++之STL(十)

【代码】C++之STL(十)

2024-06-27 14:34:05 305

原创 C++之STL(九)

第二个()为参数public:FunObj fo;fo();fo(1);// 也可以构造匿名对象FunObj()FunObj()();return 0;// 输出1。

2024-06-27 11:05:48 351

原创 C++之STL(六&七)

【代码】C++之STL(六&七)

2024-06-24 15:08:05 252

原创 C++之STL(五)

主要是要点进去看内部源码的实现。

2024-06-21 16:58:04 209

原创 C++之STL(四)

通过重载*、->、++、--等运算符来支持指针操作。迭代器是容器与算法的桥梁。

2024-06-21 14:51:22 228

原创 C++之STL(二&三)

内存分配子。

2024-06-19 23:00:46 777

原创 C++之STL(一)

STL是基于模板实现的。编译的时候进行实例化。

2024-06-18 17:18:43 249

原创 C++之模板(四)

【代码】C++之模板(四)

2024-06-18 15:58:16 278

原创 C++之模板(三)

可以将数据结构类型传递进来,比如=vectop<T>(如果没传就是默认)Stack.hmain.cpp。

2024-06-18 14:07:55 351

原创 C++之模板(二)

类模板在使用的时候要显示的调用是哪种类型,而不是像函数模板一样能够根据参数来推导出是哪种类型。Stack.hmain.cpp3、非类型模板参数Stack2.hmain.cpp

2024-06-18 10:17:11 454

原创 C++之模板(一)

也是一种静态多态。

2024-06-17 22:20:16 240

原创 C++值单例模式与auto_ptr

/ 大小的宏// 两个指针相减,得到的是相隔几个元素// 对齐Empty e;int n;return 0;// 输出1414163208192。

2024-06-17 20:59:29 304

原创 C++之面向对象版表达式计算器(一)

【代码】C++之面向对象版表达式计算器(一)

2024-06-17 10:44:00 199

原创 C++之类与类之间的关系

这个Master例子不够突出,比如human类,有一个过桥的操作,这个过桥的操作就依赖于船,所以需要把船作为过桥的参数,使用船过桥。在class B{ A a = new A},这个时候在B的析构函数中,不能释放A对象。,它强调整体与局部的关系。整体并不负责或者管理局部的生命周期,当整体消亡的时候,局部对象还能重复利用。一个类对象作为另一个类对象的成员。例如订单,是用户的一个成员。组合是一种更强的关联关系。他们的关系不是暂时的,而是固定的。一个类对象与另一个类对象存在一个。是一种最弱的关联关系。

2024-06-06 21:29:58 202

原创 C++之RTTI

reinterpret_cast:用在编译器不认可的转型(不做任何的对齐操作)方法返回一个指向表示类型名称的字符串的指针。static_cast:用在编译器认可的转型。dynamic_cast:安全的向下转型。const_cast:去除常量属性。对象,该对象包含类型的信息。

2024-06-06 17:17:11 210

原创 C++之对象动态创建

这个写法第一次见,比较新奇,值得记录。这边主要是记录的通过。

2024-06-06 15:48:48 270

原创 C++之对象模型

虚继承,里面就会有vbptr这个指针,因为虚继承是为了解决菱形继承中变量的二义性,使派生类中只有一份基类的成员变量,所以需要这个vbptr来记录里面的两个偏移量。虚函数,里面就会有vptr这个指针,用来指向虚函数。

2024-06-06 15:42:51 211

原创 C++之虚函数与多态

虚函数的作用:当基类指针指向派生类对象的时候,在派生类中重写或者覆盖某个函数,则掉用的是派生类的虚函数。这就使得我们可以以一致的观点来看待不同的派生类对象。

2024-06-05 20:16:16 454

原创 C++之继承

overload:重载,只在作用域中相同的情况下overwrite:重写或者重定义:针对于类的继承,函数名相同(参数相不相同都是重写,会隐藏基类中的函数)override:覆盖:必须要有virtual虚函数才可以(后续讲到多态再讲解)class Basepublic:return x_;int x_;int x_;// 如果有重新定义基类的数据成员,那么基类的数据就会被隐藏Derived d;d.x_ = 20;d.show();

2024-06-03 21:20:13 676

原创 C++之map

【代码】C++之map。

2024-05-30 10:16:10 335

原创 C++之vector

【代码】C++之vector。

2024-05-29 20:48:06 289

原创 C++之string

string s1;// basic_string<char> 等价于string,其实string 就是一个模板,basic_string<char> 是它的原型return 0;// 输出xxxxabcdcdebc。

2024-05-29 17:26:31 229

原创 C++之运算符重载

的问题,因为如果直接=,就是浅拷贝,如果有用malloc的话,释放的时候,一块内存会被释放两次。s1(s2)调用拷贝构造,当在构造函数中有开辟空间,则在拷贝构造里面也要开辟空间,避免重复释放。在vs2008中友元函数的运算符重载能和成员函数的运算符重载共存,有些编译器不行。不能重载的运算符:因为如果开放了这些运算符的重载,那么语法就会变得混乱不可控制。当字符串是空的,那就是假的,当字符串不为空,那就是真。其实运算符的重载,在这边也就是成员函数的重载。推荐用成员函数进行重载,因为友元重载是全局的。

2024-05-29 15:38:20 437

原创 C++之友元

如果是一个类的友元,那可以访问一个类的所有成员及函数。但是这个友元函数不是这个类的成员函数。

2024-05-22 21:37:01 127

原创 C++之从一个实例看数据抽象与封装

数据封装:能够保护内部的数据结构不遭受外部的破坏,只能通过该类提供的接口来访问。避免函数名称冲突:因为都定义在类里面,别人定义的接口名称跟我们没关系。

2024-05-21 22:24:03 502 1

原创 C++之对象的使用

禁止拷贝:将拷贝构造函数和等号运算符声明为私有的,这样就不允许拷贝和赋值public:private://Singleton s3(*s1) // 调用拷贝构造函数return 0;还有就是:在构造函数中,开辟的内存,在单例的这个对象生命周期结束的时候自动释放方法一:提供一个释放内存的方法,主动调用public:= NULL)private://Singleton s3(*s1) // 调用拷贝构造函数return 0;

2024-05-21 21:16:04 424

原创 C++之构造函数和析构函数

构造函数的重载:如果没有写任何一个构造函数,系统将为我们提供一个不带参数的默认构造函数。如果我们写了一个带有参数的构造函数,(例如test类,test(int num),这时候已经有了构造函数,系统不会再提供构造函数,这时候如果你这样定义test t;这样会报错,因为找不到没有参数的默认构造函数,你只能test t(10);这样系统才能找到上面定义的构造函数。如果你想要test t;那么你就只能再手动增加一个构造函数 test();

2024-05-14 21:43:58 656

原创 C++之类与对象

内存体积会增大,以空间换时间:编译的时候直接将代码嵌入到调用的地方,从而减少了函数调用的开销(建立系统堆栈,保护现场,将参数压入堆栈,并且控制程序的跳转)在调用的时候,编译器会自动给成员函数的第一个参数加上该对象的地址,也就是this指针。

2024-05-07 22:06:55 213

原创 lua中的pcall和xpcall和直接调用一个函数的区别

将错误传递给指定的错误处理函数,而不是简单地返回错误消息。这使得您可以更灵活地处理错误,例如记录错误日志、提供用户友好的错误消息、或者进行其他适当的操作。函数用于以一种安全的方式调用另一个函数,并捕获任何可能发生的错误。而直接调用一个函数则是简单地执行该函数的代码。函数,即使第二次调用产生了错误,程序仍然可以继续执行,并且可以获取到错误消息。允许您指定一个错误处理函数,以便在发生错误时进行更加灵活的处理。函数出现错误时(即除数为零),错误会被传递给。,程序不会中断,而是会在调用。在这个示例中,直接调用。

2024-04-25 17:39:34 993

原创 面向对象介绍

3、实体、对象、类之间的关系。9、面向对象编程方法的特性。10、面向对象编程的优缺点。4、从计算机的观点看对象。1、面向对象程序设计。

2024-04-24 21:52:51 193

原创 从C到C++

在vs里面,对齐数为8,a占一个字节,在0这个位置存放,1到7这些位置为空,都是0;b从8这个位置存放,double占8个字节,所有8到15都是b;c从15位置存放,16到23里面为空,都是0,所以总的大小为24。

2024-04-24 21:12:53 166

原创 redis常用5大数据类型

String是Redis中最常用的一种数据类型,也是Redis中最简单的一种数据类型。首先,表面上它是字符串,但其实他可以灵活的表示字符串、整数、浮点数3种值。Redis会自动的识别这3种值。

2024-04-19 17:19:36 651 1

原创 redis主从

当从节点与主节点建立连接时,从节点会向主节点发送一个包含自己当前复制偏移量的请求,以告知主节点自己上一次复制到的位置。如果主节点的运行 ID 与从节点的期望一致,并且主节点的挤压缓冲区队列中仍然包含从节点所需的数据,则主节点会使用部分重同步机制来向从节点发送丢失的数据,从而实现断线重连后的数据恢复和继续复制。:主节点收到从节点的请求后,会检查从节点的复制偏移量是否仍然在主节点的挤压缓冲区队列中。:主节点收到从节点的请求后,会检查从节点的复制偏移量是否仍然在主节点的复制缓冲区中。,用于存储写命令的缓冲区。

2024-04-18 17:00:25 830

原创 redis持久化

在Redis重启时,通过重新执行AOF文件中的命令,可以恢复数据。AOF文件重写不会丢失任何数据,因为它会重新构建一个与当前数据相同的AOF文件,但是会删除冗余的命令和优化命令的结构,以减少文件大小并提高读取速度。通过定期进行AOF文件重写,可以优化AOF文件的结构,去除冗余命令,从而减小文件大小,提高性能。一旦AOF重写完成,Redis会开始处理缓存在内存中的写入请求,将它们追加到新的AOF文件中。在AOF重写过程中,Redis会处理新的写入请求与重写任务之间的竞争,确保数据的一致性和持久性。

2024-04-17 17:45:38 452

原创 skynet中newservice和uniqueservice的区别

是一个特殊的服务名称,用于管理服务的启动和销毁。这个服务不需要你在业务代码中显式地编写,而是由 Skynet 框架内部自动管理的。服务是 Skynet 框架内部的一个重要组成部分,负责管理服务的生命周期、调度和通信等功能。服务进行交互,而是通过 Skynet 提供的 API 接口来进行服务的创建、销毁和通信等操作。两个服务配合协同工作,以确保新服务实例的正常启动、管理和通信。服务进行交互,而是通过 Skynet 提供的 API 接口来启动新的服务实例。服务发送相应的消息,以请求创建一个新的服务实例。

2024-04-10 17:33:47 654

原创 skynet创建服务实例大致过程

创建了一个名为 "wsgate" 的服务实例时,Skynet 会在内部维护一个服务注册表,用来记录服务名称与服务地址之间的映射关系。这样,在之后的调用中,Skynet 就可以根据服务名称来索引到对应的服务地址。函数用于创建一个唯一的服务实例,并返回该服务的地址(通常是一个整数)。总的来说,Skynet 在内部通过服务注册表来管理服务名称和服务地址之间的映射关系,以便在调用服务时能够快速地找到对应的服务实例。Skynet 根据这个地址来索引到相应的服务实例,并调用其提供的服务接口。在 Skynet 中,

2024-04-10 15:08:58 149

原创 通信的跨域问题

同源策略规定,来自同一源(即协议、域名、端口号均相同)的文档之间可以自由交互,而来自不同源的文档之间默认是受限制的,无法直接进行交互。跨域问题(Cross-Origin Resource Sharing,CORS)是指在浏览器端,当客户端通过浏览器向不同域名(或协议、端口)的服务器发送请求时,如果服务器未配置相应的CORS策略,就会导致跨域问题。如果没有同源策略的限制,恶意网站可以在用户在该网站登录的情况下,利用用户在其他网站的登录状态发起恶意请求,以执行未经用户授权的操作。

2024-04-09 10:54:52 301

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除