![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++11
文章平均质量分 64
five丶
上海大学软工研究生,cpp后端方向
展开
-
设计模式(一):c++11单例模式
懒汉式 单例模式是一种设计模式,其目的是保证程序中某个类只能存在一个实例,通常日志系统和程序中的管理类(比如用于管理回调函数的handle_manager等)会以单例模式实现,显然程序不希望这些数据结构存在多个。 c++单例模式有很多种写法,但c++11之后的单例模式,拒绝花里胡哨,直接上代码: #include <iostream> class singleton{ public: static singleton getInstance(){ static sing原创 2021-05-06 22:59:27 · 325 阅读 · 2 评论 -
移动语义和完美转发
前言 c++11中引入了左右值的概念,通常认为具名的,可赋值的变量为左值,不具名的,不可赋值的变量为右值。其中对右值提供了两个实用的函数std::move()和std::forword(),分别被称为移动语义和完美转发,本文我们对这两个函数进行讨论,在讨论之前,我们先了解引用折叠。 引用折叠 c++的编译器按照如下规则进行引用折叠: 移动语义 std::move()通常被称为剪切操作,但个人认为这样称呼其实不太恰当,因为std::move只是将一个左值转换为右值,并不涉及内存的移动,称为剪切还是有些不恰原创 2021-05-02 22:58:58 · 955 阅读 · 0 评论 -
c++11智能指针
前言 c++中的指针无疑是c++的精髓,极大地提升了编程的灵活性,但各种奇怪的泄漏问题也接踵而至。 内存泄漏是指程序中已经动态分配的堆内存未被释放或者无法释放,通常是由于通过new/new[]分配的对象没有匹配地调用delete/delete[],造成系统内存的浪费,严重时甚至会导致系统崩溃。 为了解决这些问题,c++引入了auto_ptr,但由于auto_ptr引入了更多的问题,通常被弃用。所以c++11中引入了三种新的智能指针:shared_ptr、weak_ptr和unique_ptr。智能指针基于原创 2021-05-01 19:15:17 · 163 阅读 · 0 评论