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

C++ 笔记 第5页

C++解析JSON文件

菜鸟阅读 : 509赞(2)

在上一篇博客我讲解了使用C++读取XML文件,在这篇博客中我将讲解解析JSON文件。在解析JSON文件时我使用的解析库是jsoncpp,编译平台是VS2019。希望看完本篇博客能对你有所帮助。 JSON简介 在学习解析JSON文件之前,我们...

C++ 引用的本质是什么?

菜鸟阅读 : 515赞(2)

结论: ①C++中的引用本质上是 一种被限制的指针(类似于线性表和栈,栈是被限制的线性表,底层实现相同,只不过逻辑上的用法不同而已)。 ②由于引用是被限制的指针,所以引用是占据内存的。 ③在使用高级语言的层面上,是没有提供访问引用的方法的。...

c++中的智能指针

菜鸟阅读 : 691赞(2)

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

一个死锁问题分析

菜鸟阅读 : 622赞(1)

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

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

菜鸟阅读 : 540赞(1)

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

C++11中的std::call_once

菜鸟阅读 : 647赞(63)

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

C++ operator=的两种写法

菜鸟阅读 : 787赞(2)

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

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

菜鸟阅读 : 1950赞(2)

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

C++模板

菜鸟阅读 : 376赞(2)

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