Effective C++_第一篇

Effective C++_第一篇

bingliaolong C++ 6年前 19 0

导读 explicit 将构造函数声明为explicit,禁止编译器执行非预期(不是我们想要的)的类型转换。 除非我们有一个很好的理由,允许构造函数被用来进行隐式类型转换,否则我们应该把它声明为explicit的。 拷贝构造函数&&拷贝赋值操作符 拷贝构造函数被用...

Soui八

Soui八

bingliaolong Soui 3年前 8 0

SetMsgHandled 当用户在自己的消息映射表中增加一个消息处理函数,而且是插入在映射表的CHAIN_MSG_MAP(SHostWnd)前(也应该在此之前,否则很可能就收不到消息)。 默认情况下会自动标志该消息已经被处理了,如此一来就不会继续交给SHostWnd处理。 解决...

Zlib记述:一

Zlib记述:一

bingliaolong C C++ 2年前 25 0

概述 zlib库是一个广泛使用的压缩/解压缩库 下面实现是用了zlib 1.3版本的代码和相关库 具体是使用了zlib源码中带的minizip 其中的minizip扩展提供了处理ZIP文件的功能 解压 在解压之前可能需要处理其他的很多工作,比如验证目录,验证目标文件是否存在等。这...

51CTO:C++编程技巧与规范

51CTO:C++编程技巧与规范

bingliaolong C++ 4年前 9 0

类中的类类型静态成员变量 概述 对于类类型的静态成员变量,即使没有被使用,也会执行这个静态成员变量的构造和析构。 对于int,double基础类型,如果没有用到,编译器可能不为它分配内存。 使用 老用法 C++17 函数中的类类型静态对象 概述 如果函数没有被调用过,该静态对象就...

C++11_四种类型转换

C++11_四种类型转换

bingliaolong C++ 6年前 13 0

static_cast 用来完成编译器认可的隐式类型转换。 任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast。 范围: 基本数据类型之间的转换。 派生体系中向上转型:将派生类指针或引用转化为基类指针或引用。 任意类型指针与void*之间的转换...

C++标准模板库编程实战_序列容器

C++标准模板库编程实战_序列容器

bingliaolong C++ 3年前 7 0

简述 array<T,N> 长度固定,N个T类型的对象 不能增加或删除元素 vector<T> 底层实现是封装了顺序表,是一块物理上连续的空间 长度可变,必要时可以自动增加容量 但只能在序列的末尾高效的增加或删除元素 deque<T> deque是由一段一...

Effective C++_第二篇

Effective C++_第二篇

bingliaolong C++ 1年前 8 0

12 复制对象的所有部分 概述 在C++中,实现拷贝构造函数和赋值运算符时,确保复制对象的所有成员变量是至关重要的 忽略某些成员变量可能会导致不完整或错误的对象状态,进而引发难以追踪的错误 为什么要复制对象的所有部分 保持对象的一致性: 所有成员变量都应该在拷贝时保持一致,以确保...

C++_关于Async、Packaged_task、Promise的总结

C++_关于Async、Packaged_task、Promise的总结

bingliaolong C++ 5个月前 9 0

async 概述 用于简化异步任务执行的高级抽象 它的核心目标是让你能方便地启动一个任务并在未来获取其结果,而无需直接管理线程的生命周期、同步等底层细节 std::async可以看作是 std::promise, std::packaged_task和 std::thread的高...

C++并发编程 _ 共享数据

C++并发编程 _ 共享数据

bingliaolong C++ 5年前 11 0

概述 如果我们在线程间共享数据,我们需要设置规则,哪个线程可以访问数据的哪一位,什么时间以及如何将更改传达给关心数据的其他线程。 关键点 问题 从整体上来看,所以线程之间共享数据的问题,都是修改数据导致的。如果所有的共享数据都只读的,就没有问题,因为一个线程所读取的数据不受另一个...

扫一扫二维码分享