![](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 · 322 阅读 · 2 评论 -
移动语义和完美转发
前言c++11中引入了左右值的概念,通常认为具名的,可赋值的变量为左值,不具名的,不可赋值的变量为右值。其中对右值提供了两个实用的函数std::move()和std::forword(),分别被称为移动语义和完美转发,本文我们对这两个函数进行讨论,在讨论之前,我们先了解引用折叠。引用折叠c++的编译器按照如下规则进行引用折叠:移动语义std::move()通常被称为剪切操作,但个人认为这样称呼其实不太恰当,因为std::move只是将一个左值转换为右值,并不涉及内存的移动,称为剪切还是有些不恰原创 2021-05-02 22:58:58 · 949 阅读 · 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 · 160 阅读 · 0 评论