J-C++
文章平均质量分 87
GDB_er
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《C++》之——sizeof(struct/class)=?:结构体内存对齐、类的内存占用
环境:vs,64位指针:8字节,char:1字节,int:4字节C++里面结构体和类其实没啥区别(在内存分配方面)。结构体和类的区别见此博客(坑,待填)首先是结构体/类的内存对齐参考:https://blog.youkuaiyun.com/abc_xixi111/article/details/80262753内存对齐规则:第一个成员在结构体变量偏移量为0 的地址处。其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。对齐数 = 编译器默认的一个对齐数与该成员大小中的较小值。vs中默认值是8.原创 2021-04-03 17:08:04 · 340 阅读 · 0 评论 -
《C++Primer》之——拷贝控制(一):基础知识
1. 拷贝控制成员五个用来控制拷贝控制操作的类的成员函数:析构函数、拷贝构造函数/拷贝赋值运算符、移动构造函数/移动赋值运算符{挨个介绍:形式完成的操作定义时注意事项在用户代码中,何时调用哪个}2. 合成版本的拷贝控制成员五个拷贝控制成员,一定情况下,编译器会自动合成默认的版本:合成析构函数、合成拷贝构造函数/合成拷贝赋值运算符、合成移动构造函数/合成移动赋值运算符{挨个介绍:默认的操作语义何时会提供合成的版本怎样强制让他合成怎样强制让他不合成}3. swap与赋值运原创 2021-01-06 14:06:12 · 406 阅读 · 0 评论 -
《C++Primer》之——拷贝控制(二):拷贝?移动?为何而存在?我们敲代码的时候需要注意这俩东西吗?啥时候需要注意呢?
前言《C++Primer》第13章。章名为“拷贝控制”。首先需要明确一些事情,以便能更顺畅的理解:1️⃣. 前序章节:第7章需要先学一遍,类的基本知识。第6章需要放到自己的潜意识里,函数的传参与返回。2️⃣. 正如这一章所属的第Ⅲ部分的名字:类设计者的工具。这一章的都是针对类的设计来说的:某些具备一定特征的类,是需要我们自己来定义其拷贝操作的。3️⃣. C++中的“类型”:包括内置类型、类类型(标准库提供的类,和我们自己设计的类)都是类型,通常我们可以将他们统一起来。4️⃣. 拷贝与移动、拷贝原创 2021-01-06 00:24:16 · 319 阅读 · 1 评论 -
《C++Primer》之——智能指针与动态内存全纪录
前言:先来个素质三连问:什么是智能指针?为什么要用智能指针?智能指针能干啥?什么是智能指针呢? 首先要知道,智能指针是针对动态内存用的,那什么是动态内存呢?:动态内存中的对象的生存期与它们在哪里创建时无关的,只有当显式地被释放时,这些对象才被销毁。程序用堆(或叫自由空间,关于堆与自由空间的讨论可以参考这里)来储存动态分配的对象。其实C++里,动态内存就是new/delet这一对带恶人使用的内存。(其实动态内存我还没摸透,mark一下,等摸透了再回来填坑) 为什么要用动态内存呢?书原创 2020-12-31 23:04:05 · 319 阅读 · 0 评论 -
《C++Primer》之——引用,及引用的应用场景
1. 引用不能拷贝,引用不可变引用不能拷贝,也没得拷贝:因为“赋值运算符=”的拷贝操作,对于引用来说,是绑定操作。引用不可变,也没得变:因为“赋值运算符=”的赋值功能,对于引用来说,是对被引对象的赋值通过下面的代码来理解:与指针对比一下,能更好的理解上面的两句话/* 指针部分 */ int i=1,j=2; int* ptri=&i;//ptri是一个指针 /*对指针的赋值是真的赋值*/ ptri=0;//将指针ptri修改为了空指针(这里只是测试直观性需要,平常最好用null原创 2020-12-28 21:32:12 · 274 阅读 · 1 评论 -
《C++Primer》之——引用、指针,以及它们与const的爱恨纠葛
前言C++入门路上的第一个纠结:引用和指针,两个好好的东西,跟const混上之后,就开始在你脑子里打架了。。。对常量的引用、常量引用;指向常量的指针、常量指针(底层const、顶层const)。如果单看名字的话,这些概念很清晰,似乎没什么奇怪的呀。本文就来 扣扣他们的概念,捋一捋他们的关系,不过这都不重要,这个过程只是让它们在你的脑子里先扭打在一起,再分帮结派的站在两边,从而深刻明了的将它们区分开,并了解它们的特性。最终,最重要的还是搞清楚:在代码使用中时,它们能干啥、不能干啥先定义几个全局变量原创 2020-12-27 22:06:13 · 254 阅读 · 0 评论
分享