![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++提高
文章平均质量分 59
旷工锁
这个作者很懒,什么都没留下…
展开
-
类与对象中的易错点
person p2();没有执行构造函数,但也没有报错但在该行后面加一段代码: 在这里可以看出,p2并不是一个对象 而是一个对象函数总结:person p2(); 仅仅代表一个返回 person 对象的函数原创 2022-06-13 12:17:04 · 334 阅读 · 1 评论 -
虚函数内存占用
1.当一个类只有构造函数和析构函数时 内存为 1using namespace std;class person{public: person(){} ~person(){}};void main(){ person p; cout << sizeof(p)<<endl;// 当只有构造函数和析构函数时 内存为1 用来区分对象}2.当一个类有构造函数 和析构 函数时 还有虚函数时编译器会设置一个指针来指向虚函数表32位 中 内存为464位原创 2022-05-26 20:35:20 · 497 阅读 · 0 评论 -
struct所占的内存
空结构体所占内存为1 用来区分结构体#pragma pack(n)指定按照n对齐vs默认用8对齐计算方式:(表面理解)1.先找出最大的类型变量2.在它之前的总内存必须和最大类型对齐(整数倍)3.在它之后的总内存必须和最大类型对齐(整数倍)深度理解:1.每个成员按其类型大小和指定对齐参数n中较小的一个进行对齐2.确定的对齐参数必须能够整除起始地址(或偏移量)3.偏移地址和成员占用大小均需对齐4.结构体成员的对齐参数为其所有成员使用的对齐参数的最大值5.结构体总原创 2022-04-16 12:37:36 · 1776 阅读 · 13 评论 -
成员变量和成员函数的存储方式
c++中,类内的成员变量和成员函数分开存储只有非静态成员变量存储在类的对象中注意:string 类型的数据 所占的内存为28 string是一个类1.空对象有一个字节,用来区分对象class person{public:};int main(){ person p; cout << "对象p占用的内存:" << sizeof(p) << endl; return 0;}2.只有一个成员变量时class pe...原创 2022-04-16 10:49:46 · 825 阅读 · 0 评论 -
c++ new和malloc的区别
总结自:https://www.cnblogs.com/ywliao/articles/8116622.html1.关键字不一样new(申请空间) delete(释放空间) 不用头文件 malloc(申请空间) free(释放) cstdlib 2.申请的内存位置不一样:自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。new 从自由存储区 动态分配内存 malloc 从堆区创建 3.原创 2022-04-15 17:05:20 · 784 阅读 · 0 评论