c++
文章平均质量分 66
橙虚的猿
程序员一枚;
2022年毕业;
不定时更新博客,如果大家有不懂的地方或者感兴趣的地方可以私信我, 我会尽量出教程。
帮忙给我gitee项目mynode一个star,里面包含我自己整理的笔记 项目地址:https://gitee.com/zhang_fengbo/mynode
展开
-
EAP-MSCHAPV2协议流程
背景: 要实现LNS-AAA相关的东西, 其中要使用radius与eap协议 但是在网上eap协议相关协议流程都是照搬的,有些博主自己都明白是怎么回事呢,就写上了 , 经历了一段曲折的经历,梳理了流程如下。原创 2024-02-21 15:35:41 · 398 阅读 · 0 评论 -
字节序问题
在char类型中只取最后八位,此时存入计算机内为补码,因此此时补码10011 1100实际为十进制 -68。附:将188存入char类型中时,188为int类型,存储时为 1011 1100(正数原码补码相同)12345678 由高到低依次为 0x12 0x34 0x56 0x78。在使用%x打印时,会将其转为整形打印,因此前三个字节也会打印。传输到对端时:0x12 0x34 0x56 0x78。存储结果为:0x78 0x56 0x34 0x12。读取数据为:0x78 0x56 0x34 0x12。原创 2024-02-04 11:12:29 · 340 阅读 · 0 评论 -
常见位运算问题
计算机中的数在内存中都是以二进制的形式进行储存的,用二进制就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高,在程序中尽量使用位运算进行操作,就会大大提高程序的性能。原创 2023-12-01 11:39:07 · 909 阅读 · 0 评论 -
c++基本常见错误总结
int* p;//p是没有对象的野指针*p=3;//对野指针所指区域赋值//malloc函数返回类型是void*,需要强制类型转化一下//只定义到3//但是尝试访问下标为4的地方值得一提的是,现在部分编译器已经将其优化,进而允许用户进行这一危险行为而不会报错,在写代码的时候应该避免访问超出定义的下标nan不存在的数inf/-inf正负无穷大//输出nan//输出-infpublic:int a;cout原创 2023-11-30 11:07:52 · 1858 阅读 · 0 评论 -
C++语言--类型转换
而使用dynamic_cast进行向下转型则是安全的,如果父类的指针(或引用)指向的是子类对象那么dynamic_cast会转换成功,但如果父类的指针(或引用)指向的是父类对象那么dynamic_cast会转换失败并返回一个空指针。上述代码中,如果传入func函数的是子类对象的地址,那么在转换后pb1和pb2都会有对应的地址,但如果传入func函数的是父类对象的地址,那么转换后pb1会有对应的地址,而pb2则是一个空指针。dynamic_cast用于将父类的指针(或引用)转换成子类的指针(或引用)。原创 2022-10-26 21:00:26 · 153 阅读 · 0 评论 -
C++编程中常遇到的问题
相反,若没有使用volatile,编译器可能会做优化处理,可能暂时使用寄存器中的值,而如果该变量由别的程序更新了的话,将会出现不一致的现象!1 )构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的。编译器无法知道对象 的实际类型,是该类本身,还是该类的一个派生类,或是更深层次的派生类。12、标准库类型(string、vector)的下标索引必须是无符号类型,而内置的下标运算无此要求即可以是负数,如内置数组,只要arr[-2]等价于*(arr-2)指向的元素还在数组内就ok。原创 2022-10-02 10:33:41 · 1391 阅读 · 0 评论 -
c++析构函数后加上virtual的原因
C++析构函数加上virtual是为了防止内存泄漏。假设基类中采用的是非虚析构函数,当删除基类指针指向的派生类对象时就不会触发动态绑定,因而只会调用基类的析构函数,而不会调用派生类的析构函数。那么在这种情况下,派生类中申请的空间就得不到释放从而产生内存泄漏。所以,为了防止这种情况的发生,C++中基类的析构函数应采用virtual虚析构函数。虚函数:指向基类的指针在操作它的多态类对象时,会根据不同的类对象,调用其相应的函数,实现动态绑定。你可以观察到,没有执行派生类的析构函数。原创 2022-09-30 15:42:08 · 409 阅读 · 0 评论 -
c++ 智能指针
在C++中,动态内存的管理是用一对运算符完成的new和delete,new在动态内存中为对象分配一块空间并返回一个指向该对象的指针,delete指向一个动态独享的指针,销毁对象,并释放与之关联的内存。动态内存管理经常会出现两种问题一种是忘记释放内存,会造成内存泄漏;一种是尚有指针引用内存的情况下就释放了它,就会产生引用非法内存的指针。为了更加容易(更加安全)的使用动态内存,引入了智能指针的概念。智能指针的行为类似常规指针,重要的区别是它负责自动释放所指向的对象。shared_ptr。...原创 2022-07-22 18:23:36 · 3555 阅读 · 0 评论 -
lambda
=]用值的方式捕获所有变量(可能被编译器优化为const&)[=,&foo]以引用捕获foo,但其余变量都靠值捕获。[&,foo]以值捕获foo,但其余变量都靠引用捕获。[bar]以值方式捕获bar;[this]捕获所在类的this指针。[&]以引用方式捕获所有变量。外部变量访问方式说明符。[]不捕获任何变量。...原创 2022-07-22 18:22:51 · 59 阅读 · 0 评论 -
c++ 第六章 设计模式
A类型地址,执行Accept方法的时候(Accept是一个(纯)虚函数方法),虚函数是跟着对象走的,例如是C类,调用C类中的Accept,那C勒种的this指针是C*类型,指向传入的指针,相关访问者方法,this指针不同,是Output的.直接映射到Output中的方法;判断依据BCD头部存储的虚函数表地址不同的,所有B对象是相同的,通过虚函数地址来判断你当前的对象是不是B对象.问题,和基类派生类越多,普通模式效率越低,此模式直接调用到相关的功能,和派生类数量多少没关系....原创 2022-07-22 18:22:04 · 338 阅读 · 0 评论 -
c++ 第五章 模板
定义一个参数的模板当a、b变量类型不同的时候原创 2022-07-22 18:20:42 · 305 阅读 · 0 评论 -
C++ 第四章 多态
C++的多态性用一句话概括就是在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。...原创 2022-07-21 18:41:29 · 283 阅读 · 0 评论 -
C++ 第三章 继承
叫一声爸爸,开启财富之门原创 2022-07-21 18:19:27 · 213 阅读 · 0 评论 -
C++ 第二章 封装
我该有的我该做的。原创 2022-07-21 18:03:27 · 118 阅读 · 0 评论 -
C++ 第一章 类与对象
类型=类型数据+类型操作。原创 2022-07-21 17:42:03 · 71 阅读 · 0 评论 -
c++游戏服务器框架
c++游戏服务器框架skynet是一个开源的,轻量级的,为在线游戏服务器打造的框架skynetmuduo是一个基于 Reactor 模式的 C++ 网络库muduoboost asio 是一个异步的网络框架官网 : http://www.boost.org/http://sourceforge.net/projects/boost/files/第三方教程 :http://theboostcpplibraries.com/http://zh.highscore.de/cpp/boost/原创 2022-01-18 13:13:13 · 5333 阅读 · 0 评论