2018年11月14日

智能指针shared_ptr的实现

摘要: #include using namespace std; template class smart { public: smart() = default; smart(T* ptr = nullptr):_ptr(ptr) { if (_ptr) { _count = new size_t(1); } ... 阅读全文

posted @ 2018-11-14 16:09 隔壁泰山家的泰山 阅读(122) 评论(0) 推荐(0)

new与malloc的区别

摘要: new与malloc的区别是C++种的一道经典问题,以前看到过解答,但总是容易忘记。今天又看到了这道题目,于是在这里写一下答案。 1、new/delete是C++的关键字,需要编译器支持。而malloc/free是库函数,需要头文件支持。 2、new操作符申请内存分配时无需指定所需内存的大小,编译器 阅读全文

posted @ 2018-11-14 16:08 隔壁泰山家的泰山 阅读(156) 评论(0) 推荐(0)

2018年11月12日

虚析构函数与纯虚函数

摘要: 虚析构函数 通过基类的指针删除派生类对象时,通常情况只调用基类的析构函数 但是,删除一个派生类对象时,应该先调用派生类的析构函数,然后调用基类的析构函数(构造时自顶向下,析构时自底向上) 这种情况会产生内存泄漏,最终导致系统应可用内存不足而崩溃 解决办法 把基类的析构函数声明为virtual,此时派 阅读全文

posted @ 2018-11-12 22:30 隔壁泰山家的泰山 阅读(176) 评论(0) 推荐(0)

导航