菜鸟笔记
提升您的技术认知

C++ 笔记 第10页

c++中的智能指针

菜鸟阅读 : 1868赞(2)

简介   为了解决c++程序容易造成内存泄漏的问题,c++11提供了3种智能指针:std::unique_prt, std::shared_ptr, std::weak_ptr。智能指针的原理就是,将一个申请好的内存地址保存在智能指针结构体...

一个死锁问题分析

菜鸟阅读 : 1656赞(1)

问题: 源程序来源于GItHub:recipes/Factory_deadlock.cc at master · chenshuo/recipes (github.com) 加了编译选项REPRODUCE_BUG后会导致死锁,为什么会死锁呢...

C++智能指针与线程配合使用方法,附测试代码

菜鸟阅读 : 1193赞(1)

当智能指针 shared_ptr 在类里使用时,他的释放是在析构函数中内容执行完之后。 当使用 shared_ptr 开启了一个线程,这个线程也会在析构函数中内容执行完之后被释放,也就是被delete掉,如果线程尚未 join 的...

C++11中的std::call_once

菜鸟阅读 : 2001赞(64)

        某些场景下,我们需要代码只被执行一次,比如单例类的初始化,考虑到多线程安全,需要进行加锁控制。C++11中提供的call_once可以很好的满足这种需求,使用又非常简单。 头文件#in...

C++ operator=的两种写法

菜鸟阅读 : 1911赞(2)

class CMyString { public: CMyString(char* pData = nullptr); CMyString(const CMyString &str); ~CMyString(void); CMySt...

智能指针解决循环引用和线程安全问题

菜鸟阅读 : 2580赞(2)

std::shared_ptr的线程安全问题 通过这个程序我们来测试shared_ptr的线程安全问题,需要注意shared_ptr的线程安全分为两方面: // 1.演示引用计数线程安全问题,就把AddRefCount和SubRefCoun...

C++模板

菜鸟阅读 : 1191赞(2)

C++模板 什么是模板 书写的方式和作用 函数模板 案例一(模板与普通函数) 案例二(模板与模板) 函数模板缺省 函数模板传常量 模板的嵌套 什么是模板 模板编程也叫泛型编程,忽略数据类型的一种编程方式。 书写的方式和作用 模板的书写方式:...

C++17之std::optional

菜鸟阅读 : 2319赞(4)

    在编程中,我们经常遇到这样的情况:我们可能返回/传递/使用某种类型的对象。也就是说,我们可以有某个类型的值,也可以没有任何值。因此,我们需要一种方法来模拟类似指针的语义,在指针中,我们可以使用nullptr来表示...