自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dablelv的博客专栏

The blog world of Dablelv

原创 C++ 抛出异常与传递参数的区别

代码便已运行环境:VS2012+Debug+Win321.C++异常处理基本格式C++的异常处理机制有3部分组成:try(检查),throw(抛出),catch(捕获)。把需要检查的语句放在try模块中,检查语句发生错误,throw抛出异常,发出错误信息,由catch来捕获异常信息,并加以处理。一...

2015-11-29 13:26:51 2742 0

原创 C++ 为什么要引入异常处理机制

1.异常处理的困难 在程序设计中,错误时不可避免的。及时有效的发现错误,并作出适当的处理,无论是在软件的开发阶段还是在维护阶段都是至关重要的。错误修复技术是提高代码健壮性的最有效的方法之一。 程序员往往忽视错误处理,并不是因为程序员认为自己的程序不会出错,而是因为错误处理不是一件轻松的...

2015-11-28 20:57:58 2678 0

原创 OpenMP并行加速笛卡尔乘积

1.字典字符集的笛卡尔乘积问题描述: 对于给定的由字典字符集组合而成的表达式,求该表达式构成的所有元素。例如表达式[0-9][a-z],其中0-9表示10个数字,a-z表示26个小写字母,构成的所有元素就是0a,0b,…,0z,1a,1b,…9z。字典字符集的笛卡尔乘积示意如下:问题分析: 对...

2015-11-28 14:35:56 1852 0

原创 C++ 多字节与宽字符串的相互转换

代码编译运行环境:VC++2012+Debug+Win321.问题描述char字符与wchar_t字符由于编码不同,所以在char*和wchar_t*之间使用强制类型转换达不到正确转换字符串的目的。考察如下程序。#include &a...

2015-11-28 11:46:41 14762 0

原创 C 语言的数据类型宽度扩展

代码编译运行环境:VC++ 2012+Debug+Win321.问题描述在编程或者面试过程中,会遇到如下问题:char c=128; printf("%d",c); //输出-128为什么一个正整数128以整型int输出却变成了一个负数?2.问题分析在理解上面的问题时,我们需...

2015-11-27 18:01:00 3954 0

原创 C++ endl 的本质是什么

1. endl的本质自从在C语言的教科书中利用Hello world程序作为学习的起点之后,很多程序设计语言的教科书都沿用了这个做法。我们写过的第一个C++程序可能就是这样的。#include <iostream> using namespace st...

2015-11-22 21:31:16 10380 4

原创 C++ IO 流简介

1.输入输出(IO)与流的概念输入输出(IO)是指计算机同任何外部设备之间的数据传递。常见的输入输出设备有文件、键盘、打印机、屏幕等。数据可以按记录(或称数据块)的方式传递,也可以 流的方式传递。所谓记录,是指有着内部结构的数据块。记录内部除了有需要处理的实际数据之外,还可能包含附加信息,这些附加...

2015-11-22 13:50:46 1992 0

原创 C++解引用操作符重载

“*”是一个一元操作符,它作用于指针,表示去除指针所指单元的内容。当某个类中对*操作符今次那个重载时,是将该类的对象当做一个指针看待,而用*操作符提取指针所指向的内容。考察如下程序。#include <iostream> using namespace std;tem...

2015-11-22 00:54:24 5077 0

原创 C++赋值操作符重载

1.赋值操作符重载的原因赋值操作符是一个使用频率最高的操作之一,通常情况下它的意义十分明确,就是将两个同类型的变量的值从一端(右端)传到另一端(左端)。但在以下两种情况下,需要对赋值操作符进行重载。 一是赋值号两边的表达式类型不一样,且无法进行类型转换。 二是需要进行深拷贝。2. 赋值操作...

2015-11-21 18:32:57 1720 0

原创 C++输入输出操作符重载

1. 输入输出操作符简介C++中输入操作符是>>,输出操作符是<<,又叫做流对象的“插入操作符”和“提取操作符“。其实这两个操作符最初是在C语言中用于整数的移位运算,到了C++中才利用操作符重载的技术将它们应用于输入、输出操作。2.重载的原因...

2015-11-18 09:35:23 2603 0

原创 C++ 动态联编实现原理分析

代码编译运行环境:VS2012+Debug+Win32所谓动态联编,是指被调函数入口地址是在运行时、而不是在编译时决定的。C++语言利用动态联编来完成虚函数调用。C++标准并没有规定如何实现动态联编,但大多数的C++编译器都是通过虚指针(vptr)和虚函数表(vtable)来实现动态联编。 基...

2015-11-17 19:25:46 3311 4

原创 C++构造函数与析构函数调用虚函数的注意事项

虽然可以对虚函数进行实调用,但程序员编写虚函数的本意应该是实现动态联编。在构造函数中调用虚函数,函数的入口地址是在编译时静态确定的,并未实现虚调用。但是为什么在构造函数中调用虚函数,实际上没有发生动态联编呢?1. 不要在构造函数中调用虚函数的原因第一个原因,在概念上,构造函数的工作是为对象进行初始...

2015-11-16 21:25:08 7327 0

原创 C++虚调用及其调用的具体形式

1.虚调用的定义虚调用是相对于实调用而言,它的本质是动态联编。在发生函数调用的时候,如果函数的入口地址是在编译阶段静态确定的,就是是实调用。反之,如果函数的入口地址要在运行时通过查询虚函数表的方式获得,就是虚调用。2.虚函数的几种实调用的情形2.1不通过指着或者引用调用虚函数虚调用不能简单的理解成...

2015-11-16 19:49:36 1918 0

原创 RTTI简介

代码编译运行平台:VS2012+Debug+Win32RTTI是Runtime Type Identification的缩写,是“运行时类型识别”的意思。面向对象的编程语言,象C++,Java,Delphi都提供了对RTTI的支持。 本文将简略介绍 RTTI 的一些背景知识、描述 RTTI 的概念...

2015-11-14 03:14:47 1852 0

原创 C++ 虚拟继承与虚基类

1.多重继承带来的问题C++虚拟继承一般发生在多重继承的情况下。C++允许一个类有多个父类,这样就形成多重继承。多重继承使得派生类与基类的关系变得更为复杂,其中一个容易出现问题是某个基类沿着不同的路径被派生类继承(即形成所谓“菱形继承”),从而导致一个派生类对象中存在同一个基类对象的多个拷贝。 ...

2015-11-13 22:58:35 1758 0

原创 C++ 函数重载、隐藏与覆盖的区别

函数重载 1.1函数重载的定义C++规定在同一作用域中,同名函数的形式参数(指参数的个数、类型或者顺序)不同时,构成函数重载(Function Overload)。 1.2函数重载的用法比如,要从两个变量中返回其中较大的一个值,可以编写如下两个构成重载的函数。

2015-11-12 23:48:20 2505 0

原创 C/C++ sizeof(下)

sizeof作用于基本数据类型,在特定的平台和特定的编译中,结果是确定的,如果使用sizeof计算构造类型:结构体、联合体和类的大小时,情况稍微复杂一下。

2015-11-10 22:08:55 2111 0

原创 C/C++数组与指针详解

数组数组大小(元素个数)一般在编译时决定,也有少部分编译器可以运行时动态绝对数组大小,比如icpc(intel C++编译器)。1.1数组名的意义数组名的本质是数组第一个元素的首地址,也是数组的首地址。数组名所代表的地址是在编译阶段确定的,因此 数组名是一个地址常量,不允许为数组名赋值。

2015-11-10 21:13:59 1875 0

原创 C++ 基类私有成员会被继承吗

1.派生类间接访问继承私有成员在类的继承中,类的私有成员在派生类中是“不可见“的,这种”不可见“是指在派生类的成员函数中,或者通过派生类的对象(指针,引用)不能直接访问它们。但是,不能直接访问并不代表不能访问。在派生类还是能够通过调用基类的共有函数的方式来间接地访问基类的私有成员,包括私有成员变量...

2015-11-05 00:51:24 13739 4

原创 C++ 内存池介绍与经典内存池的实现

1.默认内存管理函数的不足利用默认的内存管理函数new/delete或malloc/free在堆上分配和释放内存会有一些额外的开销。系统在接收到分配一定大小内存的请求时,首先查找内部维护的内存空闲块表,并且需要根据一定的算法(例如分配最先找到的不小于申请大小的内存块给请求者,或者分配最适于申请大小...

2015-11-01 00:04:38 22897 20

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