摘要: 1、背景:C++程序设计中,对堆内存的操作非常频繁,堆内存的申请和释放都是由程序员来管理。然而在复杂的场景时很容易导致堆内存泄漏(忘记释放)、内存二次释放和程序出现异常时泄漏等情况。为了更好的管理堆内存因此引入了智能指针。 2、原理:智能指针是一个类,类的构造函数中传入普通指针,析构函数中释放传入的 阅读全文
posted @ 2020-05-24 21:24 Love63 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 自由存储:函数内部定义的常规变量; 静态存储:全局变量和static声明的变量; 动态存储:使用new和delete运算符操作的内存; C++11新增了第四种类型——线程存储 阅读全文
posted @ 2019-10-18 17:57 Love63 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 成员变量在使用初始化列表初始化时,与构造函数中初始化成员列表的顺序无关,只与定义成员变量的顺序有关;因为成员变量初始化顺序与变量在内存中的顺序有关,内存中的排列顺序在编译时根据变量的定义次序决定; 阅读全文
posted @ 2019-10-18 10:32 Love63 阅读(920) 评论(0) 推荐(0) 编辑
摘要: UDP的主要特点是:(1)无连接;(2)尽最大努力交付;(3)面向报文;(4)无拥塞控制;(5)支持一对一、一对多、多对一和多对多的交互通信;(6)首部开销小(只有四个字段:源端口、目的端口、长度、检验和)。 TCP的主要特点是:(1)面向连接;(2)每一条TCP连接只能是点对点的(一对一);(3) 阅读全文
posted @ 2019-10-09 22:41 Love63 阅读(610) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-10-09 22:14 Love63 阅读(95) 评论(0) 推荐(0) 编辑
摘要: this返回的是当前对象的地址(指向当前对象的指针); *this返回的是当前对象的克隆和本身(若返回类型是A,则是克隆,若返回类型是A&,则是本身); 阅读全文
posted @ 2019-10-07 23:10 Love63 阅读(981) 评论(0) 推荐(0) 编辑
摘要: 1、默认构造函数2、析构函数3、拷贝构造函数4、赋值运算符(等号:operator=)5、取址运算符(operator&)(一对,一个非const的,一个const的) 有争议,跟具体编译器相关,有的生成,有的不生成 例: class Empty{public: Empty(); // 缺省默认构造 阅读全文
posted @ 2019-10-06 17:30 Love63 阅读(1161) 评论(0) 推荐(0) 编辑
摘要: 转载:https://blog.csdn.net/qq_40416052/article/details/82655736 阅读全文
posted @ 2019-10-06 16:48 Love63 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 不能被继承和不能被重载的函数; 1)普通函数 普通函数不属于成员函数,是不能被继承的。普通函数只能被重载,不能被重写,因此声明为虚函数没有意义。因为编译器会在编译时绑定函数。 而多态体现在运行时绑定。通常通过基类指针指向子类对象实现多态。 2)友元函数 友元函数不属于类的成员函数,不能被继承。对于没 阅读全文
posted @ 2019-10-06 16:20 Love63 阅读(2356) 评论(0) 推荐(0) 编辑
摘要: 不是,两个不同类型的指针之间可以强制类型转换(reinterpret_cast)。 阅读全文
posted @ 2019-10-06 16:05 Love63 阅读(171) 评论(0) 推荐(0) 编辑