自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

脚踏实地,用心编写出客户满意的代码,为公司创造出应有的价值。

这是一个让人成长的地方,我们需要不断提升自己,学无止境!

  • 博客(27)
  • 收藏
  • 关注

原创 指针与数组的联系和区别

数组、指针的联系和区别以及数组和指针作为函数参数传递时的异同。

2014-04-29 22:05:28 951

原创 字节对齐问题详解

字节对齐,我的理解就是用空间换取时间,提高存取的效率。下面详细分析:1.什么是字节对齐?现代计算机中内存空间都是按照字节划分的,从理论上讲似乎对任何类型变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是字节对齐。注意:我们经常听说的对齐在N上,它的含义就是数据

2014-04-28 21:21:06 863

原创 union的读写问题

union的读写问题

2014-04-26 21:26:18 887

转载 静态成员变量和静态成员函数

数据成员可以分静态变量、非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员.非成静态员:所有没有加Static的成员都是非静态成员,当类被实例化

2014-04-20 14:32:20 745

转载 虚继承和虚基类的本质

虚继承和虚基类的定义是非常的简单的,同时也是非常容易判断一个继承是否是虚继承的,虽然这两个概念的定义是非常的简单明确的,但是在C++语言中虚继承作为一个比较生僻的但是又是绝对必要的组成部份而存在着,并且其行为和模型均表现出和一般的继承体系之间的巨大的差异(包括访问性能上的差异),现在我们就来彻底的从语言、模型、性能和应用等多个方面对虚继承和虚基类进行研究。    首先还

2014-04-20 14:28:35 643

转载 IP地址控件的使用

IP地址在计算机中表示是32位二进制,通过GetAddress()来获得IP时,得到的是一个由二进制所转化的长整型IP地址,比如IP地址202.201.112.98的长整型表示就是:3402199138,同样也可以使用http://3402199138/来访问,所以在进行套接字绑定时要进行相应的转换。 //将CString   型IP地址在IPAddressCtrl中显示

2014-04-20 13:59:00 842

转载 另一种向Excel表中保存数据的方法

本文中对Excel文件的操作都被封装进一个类CSpreadSheet中,通过它我们可以非常简便的实现各种Excel表格数据操作,并且可以对该类进行扩充来满足自己的需求。具体实现包含Excel文件操作类头文件#include "CSpreadSheet.h"新建Excel文件,并写入默认数据// 新建Excel文件名及路径,TestSheet为内部表名CSpr

2014-04-20 13:55:29 753

转载 直接通过ODBC读写Excel表格文件

想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)"。然后,可根据下面步骤进行: 1. 在StdAfx.h文件中加入:#include #include 2. 通过ODBC直接创建Excel文件并在表中插入数据(暂定文件名:Demo.xls)//创

2014-04-20 13:50:35 1141

原创 所谓虚构造函数

所谓虚构造函数

2014-04-19 18:23:08 740

原创 请说明new operator和operator new之间的差异

请说明new operator和operator new之间的差异

2014-04-19 18:10:10 1135

原创 如果编译器尚未支持bool,有两种方法可以模拟

如果编译器尚未支持bool,有两种方法可以模拟

2014-04-19 09:59:34 1165 1

原创 怎样判断两个变量数据类型一致

怎样判断两个变量数据类型一致,见识模板的魅力。

2014-04-19 09:48:34 1308

原创 静态/编译期断言的三种机制

静态/编译期断言的三种机制

2014-04-19 09:16:58 916

原创 排序算法总结(C++语言)

今天静下心来对一些排序算法进行总结,全部使用c++语言。//按名次排序template void Rearrange(T a[],int n,int r[]){ //按序重排数组a中的元素,使用附加数组u T *u=new T[n+1]; //在u中移动到正确的位置 for(int i=1;i<n;i++) u[r[i]]=a[i]; //移回到a中 for(int i=

2014-04-16 23:17:53 1282

原创 自定义一个动态数组

当我们需要一个动态数组时可以根据自己的需要量身定制,很不错哦!

2014-04-16 23:13:29 871

原创 预处理器的小结

1.对程序作预处理前,编译器会对它进行几次翻译处理。   。首先把源代码中出现的字符映射到源字符集。   。编译器查找反斜线后紧跟换行符的实例并删除这些实例。   。编译器将文本划分成预处理的预言符号序列和空白字符及注释序列。注意的一点是编译器用一个空白字符代替每一个注释。2.预处理器不进行计算,它只是按照指令进行文字替换操作。3.宏常量可以用来指定标准数组的大小并作为

2014-04-16 22:53:23 646

原创 基础进程通信

45.互斥对象包含一个使用数量,线程ID和一个计数器。46.互斥对象是惟一与线程相关的内核对象,对互斥对象来说谁拥有谁释放。47.操作系统维护了线程的信息以及与该线程相关的互斥对象的信息,因为她知道哪个线程终止了。48.事件对象也属于内核对象,它包含以下三个成员:   。使用计数;   。用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值;   。用于

2014-04-16 22:50:46 538

原创 C/C++知识点总结(七)

63.C和C++中的内建集合都实现了两种不同的方法,复制对于这两种方法来说含义各不相同:  。结构体实现值语义:复制完成后,两个变量都有这个值的独立的副本。  。数组实现引用语义:复制完成后,两个变量都引用同一个底层对象。64.不同类型的容器不应该存在继承关系士收一个参数的构造函数定义了从参数类型到类类型的转换。如果使用了关键字explicit限定了这种构造函数,则它只能用于显

2014-04-16 22:33:59 606

原创 返回类型与参数类型的关系

注意不能定义一个返回类型与参数类型无关的函数。否则很多编译器无法通过编译。(虽然C++标准委员会已经批准了一种方式,允许返回类型不同于任何模版参数类型,但是,很少有编译器支持该方式)例如:template T sum(Iter it)      {/*...*/}

2014-04-16 22:27:56 707

原创 只能定位出任何数组尾部之后的那一个元素的地址

1.不能定义一个返回类型与参数类型无关的函数。否则很多编译器无法通过编译。(虽然C++标准委员会已经批准了一种方式,允许返回类型不同于任何模版参数类型,但是,很少有编译器支持该方式)例如:template T sum(Iter it)      {/*...*/}94.C和C++语言保证(且只能保证)能够定位超出了任何数组尾部之后的那一个元素的地址。换句话说,就是以下的a+10

2014-04-16 22:25:08 664

原创 单元素模式返回实例

89.希望有且只有一个类的实例返回给调用程序时,就可以使用单元素模式(Singleton Pattern)。这种类的声明如下:   class TheOnlyInstance   { public:  static TheOnlyInstance* GetTheOnlyInstance();  //other methods protected:  TheOnl

2014-04-16 22:22:02 514

原创 C/C++知识点总结(六)

52.函数对象提供了一种方法,将要调用的函数与准备传递给这个函数的隐式参数捆绑起来。53.和在C中一样,C++不可能有函数类型的变量,所以任何声明这种变量的企图都将立即被转换成指向函数的指针声明。和在C中一样,所有对函数指针的调用都等价与对这个指针所指向的函数的调用。54.C和C++的一个约定,两个或两个以上只用空格(包括换行符)分隔的字符串(用双引号引住)在编译时被联合起来当作一

2014-04-16 22:17:25 999 2

原创 C/C++知识点总结(五)

41.size_type是一个依赖于实现的整型,是在头文件string中定义的。string类将string::npos定义为字符串的最大长度,通常为无符号int的最大值。42.对象名不同于数组名,不会被看作是对象的地址。43.string.h和cstring支持对C风格字符串进行操纵的C库字符串函数,但不是支持string类。44.getline()将丢弃换行符,而get()

2014-04-16 22:08:17 779

原创 C/C++知识点总结(四)

31.如果文件名包含在尖括号中,则C++编译器将在存储标准头文件的主机系统的文件系统中查找;如果文件名包含在双引号中,则编译器将首先查找当前的工作目录或源代码目录,如果没有在那里找到头文件,则将在标准位置查找。32.作用域描述了名称在文件的多大范围内可见;链接性描述了名称如何在不同的单元间共享。链接性为外部的名称可在文件间共享,链接性为内部的名称只能由一个文件中的函数共享。自动变量的名

2014-04-16 22:01:41 850

原创 C/C++知识点总结(三)

21.必须在声明引用时进行初始化。22.对于参数列表的函数,必须从右向左添加默认值。也就是说,要为某个参数设置默认值,则必须为它右边的所有参数提供默认值;实参按从左到右的顺序依次被赋给相应的形参,而不能跳过任何参数;只有原型指定了默认值,函数定义与没有默认参数时完全相同。23.将源代码中的函数调用解释为执行特定的函数代码块被称为函数名联编。在编译过程中进行联编被称为静态联编(sta

2014-04-16 22:00:02 835

原创 C/C++知识点总结(二)

11.按值传递意味着创建原始变量的一个副本。12.默认的复制构造函数逐个复制非静态成员(成员复制也称为浅复制),复制的是成员的值。13.将已有的对象赋给另一个对象时,将使用重载的赋值操作符,初始化对象时不一定使用赋值操作符。14.决不会用作基类的类是不需要虚析构函数的:任何虚函数只在继承的情况下才有用。15.如果不想用户能够复制类的对象,就声明复制构造函数(可能还有赋值操作

2014-04-16 21:57:51 988

原创 C/C++知识点总结(一)

1.函数名称的作用域可以是全局的,但不能是局部的。2.对于不能在类声明中初始化静态数据成员的一种例外情况是,静态数据为整型或枚举型const。3.静态类成员有一个特点,无论创建多少对象,程序都只创建一个静态类变量副本。他与静态类变量存储在一起,而不是存储在对象中。4.声明类只是描述了对象的形式,并没有真正的创建对象,因此在被对象创建之前将没有用于存储值的空间。5.strle

2014-04-16 21:55:51 806

空空如也

空空如也

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

TA关注的人

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