C++ – 字节数组byte[]或者unsigned char[]与int的相互转换
一个字节为8位二进制位 1 int转字节数组byte[] C++中,字节数组byte通常用unsigned char表示,所以int转换为字节数组本质上是将int转换为unsigned char数组。int一般为4个字节,那么就为32位二进制位表示。 代码如下: void IntToByte(int…
- C++
- 2020-11-10
C++ 11 – final关键字简要介绍
如果在基类的虚函数声明中加上了final关键字,则表明后续的派生类不能重写该函数。 1 基类的虚函数上加上final关键字 表明基类后续的派生类不能重写该虚函数。 代码示例: #include <iostream> #include <memory> using namesp…
- C++
- 2020-10-12
C++11 – override关键字简要介绍
C++11 中的 override 关键字,可以显式的在派生类中声明,基类的哪些函数需要被重写,如果没被重写,则编译器会报错。防止出现在需要调用派生类某个成员函数的情况下错误的调用了基类的缺省函数实现。 1 派生类对基类中的函数继承 派生类对基类中的函数继承可以分为几种类型: 接口继承,通过在基类中…
- C++
- 2020-10-12
C++11 – 父类与子类相互包含的时候该如何正确的使用智能指针,防止循环引用
1 父类和子类相互包含的应用场景 在实际开发的过程中,经常会遇到这种类似的问题,一个父类通常维护着属于该父类的多个子类指针,而每一个子类中也存储着指向其父类的指针对象,方便进行节点递归或者其他操作。 比如说: 一个三维立方体,每一个三维立方体类都包含了所有属于该立方体的三角面类,而每一个三角面都存储…
- C++
- 2020-09-25
C++11 – std::bind简要介绍以及可绑定函数的几种形式总结
1 std::bind template <class Fn, class... Args> /* unspecified */ bind (Fn&& fn, Args&&... args); template <class Ret, class F…
- C++
- 2020-09-24
C++11 – std::function简要介绍以及可包装函数的几种形式总结
1 std::function 函数模板形式: template <class T>函数;//未定义 模板<class Ret,class ... Args> class function <Ret(Args ...)>; 1.1 函数模板说明 std::func…
- C++
- 2020-09-24
C++ – 使用Websocket++编写客户端连接WebSocket服务器并进行通信
1 库依赖 使用Websocket++有两种方案: Websocket++ + boost,主要是使用Boost Asio,这种方案比较重依赖,需要链接Boost Websocket++ + 独立Asio库,这种方案比较轻量,Websocket++和独立Asio都只需要使用头文件即可,具体的配置方案…
- C++
- 2020-08-31
C++ – 最简单的将文本文件的内容一次性读取到std::string的方法
1 C++将文本文件一次性读取到std::string的方法 包含头文件: #include <fstream> #include <iostream> 读取代码如下: std::ifstream in("test.txt", std::ios::in); std::istr…
- C++
- 2020-08-21
C++11 – std::shared_ptr初始化的几种方式
1 std::shared_ptr初始化的几种方式 这里只总结一下std::shared_ptr初始化的几种方式,不对std::shared_ptr的优缺点进行说明,初始化的方式比较多,平时码字的时候经常会搞迷糊,备忘。 1.1 构造函数初始化 std::shared_ptr<int> …
- C++
- 2020-08-12
C++ – 控制台程序在控制台窗口可变参数格式化带颜色输出日志信息
1 C++以可变参数格式化带颜色输出日志信息 使用Unity时,它的日志系统做的就比较好,不同类型的日志信息在底下面板以不同的颜色输出出来,简单明了,所以仿照这个做了一个简陋的,不过也够用了,代码如下: #include <iostream> #include <Windows.h…
- C++
- 2020-07-24
C++ – queue存储动态指针时正确释放内存
1 代码示例 #ifdef _DEBUG #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__) #else #define DEBUG_CLIENTBLOCK #endif #define _CRTDBG_MAP_ALLO…
- C++
- 2020-05-06