自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++ 多态 虚函数指针

要了解C++中的面向对象的特性,除了使用方法外,了解其底层的技术细节对我们编程工作非常有帮助。尤其是了解对象的内存映像、vtable(虚函数表)的构造、vptr(虚函数指针)的插入和初始化时机、构造和析构函数的自动调用时机、对象的构造和析构次序、临时对象的创建和销毁、RTTI(运行阶段类型识别)的底层实习技术等。对象在内存中的布局我们首先看一下简单的非多态类Rectangle的对象内存映像:...

2020-02-13 22:21:26 130

原创 C++ 并发与多线程学习笔记(七)原子操作

引例先来设想一个场景:存在一个变量,有线程要读这个变量,有线程要写这个变量:int share_value = 0;void threadFunc(){ for (int i = 0; i < 100000; i++) //每个线程进行10万次计算 share_value++;}int main(){ clock_t start = clock();//为了分析性能,...

2020-03-06 14:21:59 49

原创 C++ 并发与多线程学习笔记(六)线程同步 condition_variable条件变量 async future
原力计划

顾名思义,条件变量就是一种让线程满足的条件。需要和互斥锁配合使用官方文档:http://www.cplusplus.com/reference/condition_variable/condition_variable/需求:有时候,我们需要多个线程能够同时就绪,再继续往下执行,或者多个线程需要使用有限的互斥量,然后再继续执行。使线程之间从某处开始同步执行。std::condition_va...

2020-02-25 19:48:54 101

转载 C++在线编译器

在翻C++文档的时候发现的,网址http://cpp.sh/

2020-02-25 14:10:44 19

原创 C++ 并发与多线程学习笔记(五)单例设计模式 共享数据分析

在开始学习之前,先简单讲讲对于设计模式的概念,设计模式是一些代码的写法,并非什么新奇的技术,是一些歪果仁的模块化编程的经验总结,是一种设计程序的思想或者说思路模板。在前几年设计模式刚被引入的时候,大家觉得很高大上,因此曾被部分夸大,但实际中并不是必要的,用设计模式写出来的代码比较晦涩,维护、接手的时候都有一定难度。设计模式有它的优点,要活学活用,不要深陷其中,正确的认识它。所有实用的编程方法和技术...

2020-02-23 21:04:21 84

原创 C++ 并发与多线程学习笔记(四) 线程数据共享 互斥锁 死锁

消息队列的应用除了线程之间,还在进程间、系统间有广泛的应用,消息可以很简单,也可以很复杂,面对庞杂的数据时,消息队列是常用的思想,市面上有很多第三方软件封装好了消息队列供企业使用。

2020-02-21 16:56:24 124

原创 C++ 并发与多线程学习笔记(三)线程传参隐患 成员函数指针做线程函数

传递临时对象作为线程参数先来看一个例子:#include <string>#include <iostream>using namespace std;void myprint(const int &i,char *pmybuf){ cout << i << endl; cout << pmybuf <&lt...

2020-02-17 20:42:58 146

原创 C++ 并发与多线程学习笔记(二)线程启动、结束、创建、join()、detach()

一个进程必然包含一个主线程,进程和主线程密不可分。thread:是一个标准库里的类实例化一个thread对象即可操作线程例:void myfun(){ ...}int main(){ ... std::thread myThreadObj(myfun); myThreadObj.join(); ... return 0;}join()方法:加入/汇合,作用是阻塞...

2020-02-16 14:22:01 150

Google C++编程风格指南.pdf

Google的开源项目大多使用C++开发。每一个C++程序员也都知道,C++具有很多强大的语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得代码更易于出现bug、难于阅读和维护。本指南的目的是通过详细阐述在C++编码时要怎样写、不要怎样写来规避其复杂性。这些规则可在允许代码有效使用C++语言特性的同时使其易于管理。风格,也被视为可读性,主要指称管理C++代码的习惯。使用术语风格有点用词不当,因为这些习惯远不止源代码文件格式这么简单。使代码易于管理的方法之一是增强代码一致性,让别人可以读懂你的代码是很重要的,保持统一编程风格意味着可以轻松根据“模式匹配”规则推断各种符号的含义。创建通用的、必需的习惯用语和模式可以使代码更加容易理解,在某些情况下改变一些编程风格可能会是好的选择,但我们还是应该遵循一致性原则,尽量不这样去做。本指南的另一个观点是C++特性的臃肿。C++是一门包含大量高级特性的巨型语言,某些情况下,我们会限制甚至禁止使用某些特性使代码简化,避免可能导致的各种问题,指南中列举了这类特性,并解释说为什么这些特性是被限制使用的。由Google开发的开源项目将遵照本指南约定。 注意:本指南并非C++教程,我们假定读者已经对C++非常熟悉。

2020-02-23

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除