![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 65
qq_43732110
这个作者很懒,什么都没留下…
展开
-
运算符重载
运算符重载1、什么是友元?友元的存在形式有?友元有何特点?友元:一般来说,类的私有成员只能在类的内部访问,类之外是不能访问它们的。但如果将其他类或函数设置为类的友元(friend),就可以访问了。存在形式:友元函数(可设为全局函数或成员函数)和友元类特点:友元的声明不受public/protected/private关键字的限制。友元的存在,使得类的接口扩展更为灵活,使用友元进行运算符重载从概念上也更容易理解一些,而且, C++ 规则已经极力地将友元的使用限制在了一定范围内,它是单向的、不具备传递原创 2021-02-03 22:47:10 · 139 阅读 · 3 评论 -
CPP类与对象
CPP类与对象1、浅拷贝与深拷贝区别?浅拷贝:只拷贝指针地址,导致两个指针指向同一块内存空间。cpp默认拷贝构造函数是浅拷贝,这在没有指针时是可行的,但当数据成员有指针时,如果仅采用浅拷贝,则两个指针指向同一堆内存。一个对象被析构后,会造成另一对象的指针悬挂。深拷贝:会在堆内存中另外申请一段空间来存储数据。2、当定义类时,编译器会为类自动生成哪些函数?这些函数各自都有什么特点?构造函数:函数名与类名相同,无返回值,可传参,可重载。完成数据成员初始化。默认构造函数无参。初始化表原创 2021-02-03 14:00:48 · 134 阅读 · 0 评论 -
new和delete
new和delete一、new表达式工作步骤调用名为operator new的标准库函数,分配足够大的原始的未类型化的内存,以保存指定类型的一个对象运行该类型的一个构造函数初始化对象返回指向新分配并构造的构造函数对象的指针二、delete表达式工作步骤调用析构函数,回收对象中数据成员所申请的资源调用名为operator delete的标准库函数释放该对象所用的内存三、关于operator new/delete以Student类为例#include <string.h&g原创 2021-02-03 15:24:52 · 112 阅读 · 0 评论 -
CPP基础知识
CPP基础知识1、const关键字与宏定义的区别是什么?编译器的处理方式不同。宏定义是在预处理阶段做字符串的替换,而const是在编译时。类型和安全检查不同。宏定义没有类型,不做任何类型检查;const常量有自己的类型,编译时作类型检查。实际使用中,应用const替换宏定义,减少犯错误概率。2、malloc的底层实现是怎样的?free是怎么回收内存的?malloc函数的实质是它有一个将可用的内存块连接为一个长长的列表的空闲链表。调用malloc函数时,它沿着链表找到一个大到足以满足用户请求原创 2021-02-03 11:03:48 · 372 阅读 · 0 评论