C++
Dr_Cassie
这个作者很懒,什么都没留下…
展开
-
new和malloc的区别
1、new分配的内存空间所在位置是自由存储区,而malloc在堆上动态分配内存。自由存储区不仅可以是堆,还可以是静态存储区,这都要看opeater new在哪里为对象分配内存。new是一个关键字,而malloc是一个函数,void *malloc(size_t size)。2、new申请内存分配时无须指定内存块的大小,按照数据类型进行分配,malloc分配内存按照指定的大小分配。3、new...原创 2019-07-19 20:15:32 · 7531 阅读 · 0 评论 -
struct和class的区别
C++中:(1)struct和class关键字都可以定义类,但是struct默认的访问限定是public,class默认的访问限定是private。(2)struct默认是公有继承(public),class默认是私有继承(private)。(3)当struct和class都定义了构造函数,就不能使用大括号对其进行初始化。(4)若没有定义构造函数,struct可以使用{}进行初始化...原创 2019-07-28 15:02:41 · 1310 阅读 · 0 评论 -
【C++】——内联函数
内联函数:在C++中,以inline修饰的函数叫做内联函数,编译时C++编译器会调用内联函数的地方展开,没有函数压栈开销,内联函数提升程序运行的效率。基本思想:将每个函数调用以它的代码体来替换。内联函数在 C++ 中的地位是用来替换 C 中的宏代码块内联函数的注意事项:(1)内联函数是以空间换时间的做法,省去调用函数的额外开销。所以代码很长或者有循环/递归的函数不适宜使用内联。...原创 2019-08-09 16:12:10 · 248 阅读 · 0 评论 -
【C++】——引用与指针的比较
引用从表层来看就是内存单元的别名。从底层来看,和指针处理相同,也开辟内存,在用到引用变量的地方系统会自动解引用。一般初学者很容易把引用和指针混淆一起,但他们并不一样。int m; //m是被引用物int &n=m; //n是m的一个引用n 相当于 m 的别名(绰号),对 n 的任何操作就是对 m 的操作。例如有人名叫王小 毛,他的绰号是“三毛”。说“三毛”怎么怎么...原创 2019-08-14 11:52:00 · 181 阅读 · 0 评论 -
【C++】—— 常见的内存错误及其对策
1、内存分配未成功,却使用了它。编程新手常犯这种错误,因为他们没有意识到内存分配会不成功。常用解决办法是, 在使用内存之前检查指针是否为 NULL。如果指针 p 是函数的参数,那么在函数的入口 处用assert(p!=NULL)进行检查。如果是用malloc或 new来申请内存,应该用if(p==NULL) 或 if(p!=NULL)进行防错处理。2、内存分配虽然成功,但是尚未初始化就...原创 2019-08-14 14:07:09 · 180 阅读 · 0 评论