![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
天问XUiRH
叶子的离去是风的追求还是树的不挽留
展开
-
C++内存 指针越界检测机制_CrtMemBlockHeader
c++内存 指针越界检测机制_CrtMemBlockHeaderc++的new和delete操作,可以让我们在程序运行中动态的开辟内存空间,但是我们知道,一旦处理不好就会造成内存泄漏。一直有一个疑问,c++为防止(或者说检测)指针越界做了哪些工作?struct _CrtMemBlockHeader_CrtMemBlockHeader :这个结构体,存放了动态申请得到的内存块的各种信息,并且返回到你的指针上面。具体内容如下:typedef struct _CrtMemBlockHeader {原创 2021-07-23 14:38:08 · 948 阅读 · 0 评论 -
C++pimpl惯用法(Point Implementation)
C++pimpl惯用法(Point Implementation)私有实现封装方法1.实现一个CSocketClient的网络通讯类SocketClient.hclass CSocketClient{public: CSocketClient(); ~CSocketClient();public: bool Init();private: void fun1();private: //这里暴露了太多与实现细节相关的成员对象 SOCKET m_hSocket;原创 2021-07-17 21:56:31 · 231 阅读 · 2 评论 -
引用,编译器的假象
引用的本质引用的本质是指针常量,指向不能变,但内容可变int x=0;int &r=x;int* const r = &x;编译器的假象下面两个是编译器提供的假像,r实际上指针,4个字节sizeof( r ) == sizeof( x )&r==&xtypedef struct tagS{ int a, b, c, d;}S;void test01(){ double x = 0; double* p = &x; doubl原创 2021-07-12 16:47:55 · 93 阅读 · 0 评论 -
基于双向链表的窗口消息管理框架
Manager.h#ifndef __MANAGER_H#define __MANAGER_H#include "rtdef.h"//Manager所需的参数#ifdef MAIN#define VAR_RANGE#else#define VAR_RANGE extern #endif#define configUSE_OPENWINDOW_LOG 0 //0 打开窗口不打印日志 1打开窗口打印日志#define configUSE_CLOSEWINDOW_LOG 0原创 2021-06-02 23:15:58 · 290 阅读 · 3 评论 -
C++: explicit的适用场合以及为什么要使用explicit
C++: explicit的适用场合以及为什么要使用explicitexplicit是个C++关键子,但是关注过它的人远远没有其他关键字的多,但是往往忽略了它,就会在一些不经意的地方造成错误,而花费更多的时间去寻找.看下下面这个例子:#include <iostream>using namespace std;class A{public: A(int i = 5) { m_a = i; }private: int.转载 2021-01-24 14:12:04 · 108 阅读 · 0 评论 -
右值引用、移动语义和完美转发
[c++11]我理解的右值引用、移动语义和完美转发StormZhu关注42018.08.16 20:36:02字数 4,100阅读 32,575c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。有点难理解,于是花时间整理一下自己的理解。左值、右值C++中所有的值都必然属于左值、右值二者之一。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。很难得到左值和右值的真正定义,但是有一个可以区分左值和右值的便捷方法转载 2020-05-18 00:07:41 · 117 阅读 · 0 评论 -
STL标准库用法
转载自:https://www.cnblogs.com/CnZyy/p/3317999.htmlC++合理运用STL标准库是非常方便的,对数据结构和一些算法的学习也大有裨益。事实上转载处也是转载自他处,但是感觉总结的很好,当然也同时感谢原创者。互联网就是这么神奇的分享平台……目录 一、...转载 2020-04-18 20:59:46 · 494 阅读 · 0 评论 -
C++ 模板
模板C++两种模板机制函数模板类模板函数模板建立一个通用函数,函数返回值类型和形参类型可以不具体指定,有一个虚拟的类型来代表,类型参数化建议使用时采用显示指定类型来使用1.语法:template<typename T>函数声明或定义//typename和class都可以,用下面两种方式做区分template<typename T> //函数模板...原创 2020-04-14 20:32:58 · 157 阅读 · 0 评论 -
C++中的new delete具体执行过程
浅谈 C++ 中的 new/delete 和 new[]/delete[] 原创 ...转载 2020-01-05 19:02:42 · 818 阅读 · 2 评论