文章列表

C++ 头文件系列(system_error)

查看详情

1.为什么system_error "....report error conditions originating from the operating system or low-level application program interfaces." 报告源于操作系统或低层程序接口的错误。 更进一步说,< syst...

分类: C语言&C++ 标签:

读书笔记 effctive c++ Item 52 如果你实现了placement new,你也要实现placement delete

查看详情

1. 调用普通版本的operator new抛出异常会发生什么? Placement new和placement delete不是C++动物园中最常遇到的猛兽,所以你不用担心你对它们不熟悉。当你像下面这样实现一个new表达式的时候,回忆一下Item 16和Item 17: 1 Widget *pw = new Widget; ...

分类: C语言&C++ 标签:

Xcode自定义模板

查看详情

为何要自定义Xcode模板 有时候公司会要求一定的代码规范,例如控制器中需要用#pragma mark -来分割各个方法们,像这样: #pragma mark - LifeCycle - (void)dealloc {} - (void)viewDidLoad {} - (void)viewWi...

分类: C语言&C++ 标签:

读书笔记 effective c++ Item 51 实现new和delete的时候要遵守约定

查看详情

Item 50中解释了在什么情况下你可能想实现自己版本的operator new和operator delete,但是没有解释当你实现的时候需要遵守的约定。遵守这些规则并不是很困难,但是它们其中有一些并不直观,所以知道这些规则是什么很重要。 1. 定义operator new的约定 1.1 约定列举 我们以operator ne...

分类: C语言&C++ 标签:

现代c++开发利器folly教程系列之:dynamic

查看详情

一、前言    用过python、php等动态类型语言的人肯定对动态数据类型不陌生。对于定义时不确定、运行时才确定的数据类型,使用动态类型是非常方便的。c++是一门不折不扣的静态类型语言,那么是否就无缘享受“动态”类型的好处了呢?不尽然。folly为我们提供了...

分类: C语言&C++ 标签:

多态(2)纯虚函数与重载、重写(覆盖)、重定义(隐藏)

查看详情

纯虚函数 纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。纯虚函数的存在是为了更方便使用多态特性。它的一般格式如下: class <类名> { virtual <类型><函数名>(<参数...

分类: C语言&C++ 标签:

多态(1)静态多态与动态多态以及虚函数相关

查看详情

什么是多态 从字面上理解就是多种形态的意思。而多态一词最初源自希腊语,其含义便是“多种形式”,意思是是具有多种形式或形态的情形,在C++语言中多态有着更广泛的含义。在C++ primer一书中把具有继承关系的多个类型称为多态类型,因为我们能使用这些类型的“多种形式”而无须在意它们的差异。百度百科上提到在面向对象语言中,接口的多种不同的...

分类: C语言&C++ 标签:

C++小技巧之CONTAINING_RECORD

查看详情

CONTAINING_RECORD Containing record是一个在C++编程中用处很大的一种技巧,它的功能为已知结构体或类的某一成员、对象中该成员的地址以及这一结构体名或类名,从而得到该对象的基地址。 由于写法简单,它被当做一个宏来使用,写法是这样的。 #define CONTAINING_RECORD(address,t...

分类: C语言&C++ 标签:

读书笔记 effective c++ Item 50 了解何时替换new和delete 是有意义的

查看详情

1. 自定义new和delete的三个常见原因 我们先回顾一下基本原理。为什么人们一开始就想去替换编译器提供的operator new和operator delete版本?有三个最常见的原因: 为了检测内存使用错误。不能成功delete new出来的内存会造成内存泄漏。在new出来的内存上使用多于一次的delete会产生未定义...

分类: C语言&C++ 标签:

现代化c++开发利器folly教程系列之:future/promise

查看详情

一、前言  promise/future是一个非常重要的异步编程模型,它可以让我们摆脱传统的回调陷阱,从而使用更加优雅、清晰的方式进行异步编程。c++11中已经开始支持std::future/std::promise,那么为什么folly还要提供自己的一套实现呢?原因是...

分类: C语言&C++ 标签:

Wangle源码分析:ServerBootstrap

查看详情

一、ServerBootstrap介绍       ServerBootstrap,顾名思义,它是作为Wangle服务端的一个启动辅助类,熟悉Netty的朋友都知道builder模式,它的唯一目的就是以方便的、统一的方式启动一个Server。...

分类: C语言&C++ 标签:

简单c语言子集词法分析器

查看详情

概述 词法分析是编译的第一个环节,其输入是高级语言程序,输出是单词串。词法分析器的主要任务是将高级语言程序作为字符串输入,然后依据词法规则将字符串组合成单词,并输出单词串。 为了方便之后的编译环节,通常将输出的单词串表示成二元组的形式(单词种别码,单词符号的属性值)其中种别码通常用整数表示,按开发者意愿将单词种类分类,相同种类...

分类: C语言&C++ 标签:

读书笔记 effective c++ Item 49 理解new-handler的行为

查看详情

1. new-handler介绍 当操作符new不能满足内存分配请求的时候,它就会抛出异常。很久之前,它会返回一个null指针,一些旧的编译器仍然会这么做。你仍然会看到这种旧行为,但是我会把关于它的讨论推迟到本条款结束的时候。 1.1 调用set_new_handler来指定全局new-handler 在operator new...

分类: C语言&C++ 标签:

C++中的类继承(4)继承种类之单继承&amp;多继承&amp;菱形继承

查看详情

单继承是一般的单一继承,一个子类只 有一个直接父类时称这个继承关系为单继承。这种关系比较简单是一对一的关系: 多继承是指 一个子类有两个或以上直接父类时称这个继承关系为多继承。这种继承方式使一个子类可以继承多个父类的特性。多继承可以看作是单继承的扩展。派生类具有多个基类,派生类与每个基类之间的关系仍可看作是一个单继承。多继承下派生类的...

分类: C语言&C++ 标签:

c++:自己动手实现线程安全的c++单例类

查看详情

前段时间使用c++做项目开发,需要根据根据配置文件路径加载全局配置文件,并对外提供唯一访问点。面对这样一个需求,自然的就想到了使用单例模式来创建一个单例配置对象,供外部调用。一开始想使用boost中自带的单例类来实现,但是遗憾的是,boost中的的单例类好像只能使用无参的类构造函数,而我希望将配置文件路径作为单例配置对象的构造函数参数...

分类: C语言&C++ 标签:

C++模板--实现容器适配器

查看详情

STL源码初接触 STL = Standard Template Library,直译过来是:标准模板库,是惠普实验室开发的一系列软件的统称。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。...

分类: C语言&C++ 标签:

effective c++ Item 48 了解模板元编程

查看详情

1. TMP是什么? 模板元编程(template metaprogramming TMP)是实现基于模板的C++程序的过程,它能够在编译期执行。你可以想一想:一个模板元程序是用C++实现的并且可以在C++编译器内部运行的一个程序,它的输出——从模板中实例化出来的C++源码片段——会像...

分类: C语言&C++ 标签:

读书笔记 effective c++ Item 47 使用traits class表示类型信息

查看详情

STL主要由为容器,迭代器和算法创建的模板组成,但是也有一些功能模板。其中之一叫做advance。Advance将一个指定的迭代器移动指定的距离: 1 template<typename IterT, typename DistT> // move iter d units 2 void advance(IterT...

分类: C语言&C++ 标签:

PS制作背景条纹图案

查看详情

今天小编为大家分享利用PS添加背景条纹方法,操作很简单的,一起来学习吧!1、点击文件打开你想要处理的图片,页面的右下角会出现一个背景图层,如第二个图所示:2、调整底下的前景色和背景色,我这里的前景色是蓝色,背景色是白色。 3、选择左侧栏的渐变工具,按住Shift键,将鼠标从左上向右下拖动。显示出如下图所...

分类: C语言&C++ 标签:

Photoshop简单制作抽丝效果

查看详情

Photoshop如何制作抽丝效果?让小编来教你吧!简单又实用!大家一起来学习吧!首先请看原图↓↓↓1、新建9*9像素画布,背景内容透明。 2、选择铅笔工具,大小为1像素,在画布上画出如下图形。 3、选择编辑-定义图案,命名“图案 1”,确定。 4、关掉当前画布。打开要制作的图片。 5、编辑-填充,弹出...

分类: C语言&C++ 标签:
共 1211 条记录 1234567891011 49