![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
Nickee-Lin
学习如同逆水行舟,不进则退
展开
-
c++ 成员初始化列表应用
c++类每个成员都可以在初始化列表中指定一个初始值,但对于const成员变量和引用成员变量,必须要在初始化列表中进行初始化,在其它地方会报编译错误;原创 2023-03-30 23:12:12 · 66 阅读 · 1 评论 -
c++ 智能指针和普通指针混用,自定义智能指针的删除器
一般情况下,我们在写代码时都是要么用智能指针,要么用普通指针,再离谱一点就是智能指针获取普通指针,再去做业务访问操作;还有一种情况就是,将原有的普通指针,在进行业务代码编写的过程中装载成智能指针,但执行完业务逻辑后,原有的普通指针却还在使用时,就会引发问题;原创 2023-03-26 23:06:59 · 332 阅读 · 0 评论 -
c++的四种智能指针
c++的四种智能指针 智能指针:相较于普通指针,是其对普通指针进行了封装,利用c++语言特性,类的构造函数进行创建,类的析构函数进行释放;分别是:auto_ptr(c++ 11已弃用), shared_ptr, weak_ptr, unique_ptr。 智能指针隶属于memory库 1、auto_ptr(c++ 11及以后不推荐版本使用) 一个auto_ptr对象,对所指向的内存具有唯一所有权;如果赋值给新的auto_ptr,原来的指针指向将变为未定义; // auto_ptr example #in原创 2023-03-23 23:12:52 · 137 阅读 · 1 评论 -
vc6.0工程移植vs2010
最近移植了工程,总结一下遇到的一些修改: 1、error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended. 在StdAfx.h 文件中 改:#define _WIN32_WINNT 0x0501 //0...原创 2020-04-04 11:15:06 · 715 阅读 · 0 评论 -
#define offsetof(s,m) (size_t)&(((s *)0)->m)
#define offsetof(s,m) (size_t)&(((s *)0)->m) 看了半天没弄懂,空指针怎么会不出错的,他们说没有写入操作,即没有 mov x, dword ptr []。找了下别人的理解,最详细的如下:((s *)0):强制转化成数据结构指针,并使其指向地址0; ((s *)0)->m:使该指针指向成员m &(((s *)0)->m):获取该成员m的地址 (size_t转载 2017-12-18 15:56:37 · 697 阅读 · 0 评论