自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(65)
  • 资源 (1)
  • 收藏
  • 关注

原创 Effective C++读书笔记之若不想使用编译器自动生成的函数,就该明确拒绝

 通常你不希望class支持某一特定机能,只要不声明对应函数就可以达到目的。可是这个策略对copy构造函数和copy assignment操作符却不起作用,因为如果你不为某个class声明这两个函数,即你不想这个class的对象有这两个功能(如下面的代码所示), class HomeForSale {...};             //一个类你不希望它的一个对象可以copy构造另一个对象或赋值

2007-04-09 22:31:00 517

原创 Effective C++读书笔记之了解C++默默编写并调用哪些函数

 1,编译器会自动声明的类的成员函数 在一个类中,如果你没有声明copy构造函数,copy assignment操作符,和析构函数以及任何形式的构造函数。C++编译器会为这个类声明上述函数的编译器版本的。它们都是public且inline的。而且只有这些函数被调用时,它们才会被编译器创建出来,即给出它们的定义式例如: class Empty{};        //一个空类 上面的声明和下面的

2007-04-09 10:12:00 431

原创 Effective C++读书笔记之确定对象被使用前已先被初始化

读取未初始化的值会导致不明确的行为,因此在使用对象前一定要初始化对象。 1,对于内置类型,要手工完成初始化工作 例如: int x = 10;             //对int进行手工初始化 const char * text = "hello world";  //手工初始化 2,对于其它类型,使用构造函数,确保每一个构造函数都将对象的每个成员初始化 注意区分初始化和赋值,使用初始化列表和在

2007-04-08 20:51:00 553

原创 Effective C++读书笔记之尽可能使用const

 一,const修饰变量 关键字const可以修饰所有作用域中的变量,指定这个变量是不可改动的。 需要注意的是对指针的修饰。你可以修饰指针本身,可以修饰指针所指物,或两者都修饰。例:a b 是两个字符数组。 const char * p = &b;          //指向常量数据的指针 char const * p = &b;          //和上面的声明一样 char * const

2007-04-08 10:20:00 629 1

原创 Effective C++读书笔记之尽量以const,enum,inline替换#define

     当使用#define定义常量时,如#define ASPECT_RATIO 1.653。由于#define是预处理命令,所以ASPECT_RATIO有可能没进入记号表(symbol table)内。因此在有关这个常量出错时,错误提示中没有ASPECT_RATIO记号,于是你将因为追踪它浪费时。解决之道是用const来替换上述的宏(#define): const double Aspect

2007-04-07 10:41:00 1040

原创 Effective C++读书笔记之视C++为一个语言联邦

 一开始C++只是C加上一些面向对象特性,因此它最初的名称是C with Classes 现在C++已经是个多重范型编程语言(multiparadigm programming language),一个同时支持过程形式(procedural)、面向对象形式 (object-oriented),函数形式(functional)、泛型形式(generic)、元编程形式(metaprogramming)

2007-04-06 15:40:00 490

原创 Effective C++读书笔记之导读

 1,C++的默认构造函数是指没有参数或所有的参数都有默认值的构造函数 2,如果一个构造函数声名时使用了关键字 explicit 说明这个构造函数不能被用来隐式类型转换 3,copy构造函数被用来以同型对象初始化自我对象 4,copy assignment操作符被用来从另一个同型对象中拷贝其值到自我对象 5,注意区分w1 = w2;   和  widget w1 = w2;       第一个语句

2007-04-06 14:30:00 472

原创 数据结构之文件

 表和文件都是大量记录的集合,不同的是表存储在主存储器上,文件都是存储在外存储器上。 记录的逻辑结构和物理结构 记录的逻辑结构是指记录在用户或应用程序面前呈现的方式,是用户对数据的表示和存取方式 记录的物理结构是数据在物理存储器上存储的方式,是数据的物理表示和组织 文件的操作有两类:检索和修改 检索有三种方式: 1,顺序存取:存取下一个逻辑记录 2,直接存取:存取第i个逻辑记录 这两种存取方式根据

2007-04-05 09:32:00 1127

原创 UML动态视图比较

 UML的动态视图包括交互图,状态图和活动图,它们的区别是: 1,状态图是为一个对象的生命期间的情况建立模型 2,交互图(时序图和协作图)表示若干个对象在一起工作完成某项服务 3,活动图描述活动的序列,建立活动间控制流的模型

2007-04-02 08:36:00 1208

原创 UML之活动图

 活动图(Activity Diagram) 在UML里,活动图本质上就是流程图,它描述系统的活动,判断点和分支等。 活动图是UML中描述系统动态行为的图之一,它用于展现参与行为的类的活动或动作。 活动图被设计用于描述一个过程或操作的工作步骤。从这个方面理解,它可以算是状态的一种扩展方式。状态图描述一个对象的状态  以及状态改变,而活动图除了描述对象状态之外,更突出了它的活动。 UML中,图形上活

2007-04-02 08:32:00 1754

原创 UML之状态图

 状态图(Statechart Diagram)是UML中对系统动态方面建模的图之一,状态图是通过类对象的生命周期建立模型来描述对象随时间变化的动态行为。状态图显 示了一个状态机,它基本上是一个状态机中和元素的一个投影,这也就意味着状态图包括状态机的所有特性。 状态图是一种特殊种类的图形,它拥有所有其他图一样的公共属性,即名称和投影在一个模型上的图形。状态图和其他图的区别在于 它的内容。状态图通常

2007-04-01 16:10:00 2109

原创 UML之协作图

协作图(Collaboration Diagram)是动态视图的另一种表现形式,它强调参加交互的各对象的组织。协作图只对相互间有交互作用的对象和这些对象间的关系建  模,而忽略了其他对象和关联。协作图可以被视为对象图的扩展,但它除了展现出对象间的关联外,还显示了对象间的消息传递。 协作图中包括如下元素:类角色,关联角色和消息流 1,类角色(Class Role) 类角色代表协作图中对象在交互中所扮

2007-04-01 14:38:00 2480

原创 UML之时序图

动态模型描述了系统随时间变化的行为,这教学些行为是用从静态视图中抽取的系统的瞬间值的变化来描述的, 在UML的表现上,动态模型主要是建立系统的交互图和行为图。 交互图包括时序图和协作图,行为图则包括状态图和活动图 时序图(Sequence Diagram)用来显示对象之间的关系,并强调对象之间消息的时间顺序,同时显示了对象之间的交互。 时序图中包括如下元素:类角色,生命线,激活期和消息 1,类角色

2007-04-01 10:27:00 9561

原创 UML之用例图

 用例图(Use Case Daigrams) UML的用例视图就是软件产品外部特性描述的视图。它从用户的角度而不是开以者的角宽来描述对软件产品的需求,分析产品所需的功能和动态行为。 UML中的用例图描述了一组用例,参与者以及它们之间的关系。因此用例图包括以下3方面内容: 用例(Use Case)   参与者(Actor)  依赖,泛化和关联关系UML的用例视图中的参与者(Actor)是系统外部的

2007-03-31 22:02:00 2316

原创 UML之对象图

对象图(Object Diagram)表示在某一时刻一组对象以及它们之间关系的图。对象图可以被看作是类图在系统某一时刻的实例。 在图形上,对象图由节点以及连接这些节点的连线组成,节点可以是对象也可以是类,连线表示对象间的关系。 对象图的建模过程: 1,确定参与交互的各对象的类,可以参照相应的类图和交互图; 2,确定类间的关系,如依赖,泛化,关联和实现 3,针对交互在某特定时刻各对象的状态,使用对象

2007-03-31 20:25:00 2026

原创 UML之类图

静态视图包括类图,对象图和包图。 类图不仅定义系统中的类,及它们之间的关系,还包括类的内部结构(类的属性和操作)它在整个生命周期都是有效的 把逻辑上相关的类封装面包,这样可以很好的体现出系统的分层结构使人们对系统层次关系一目了然。 对象图是类图的实例。 类图和对象图的不同点: 对象图显示类图的多个对象实例,而不是实际的类。同时对象图存在生命周期的,因此对象图只能在系统某一时间存在。 包由包或类构成

2007-03-22 15:35:00 956

原创 GDI+编写图形应用程序需要了解的基本知识

 为了编写图形应用程序,需要很好地理解绘制表面和坐标系统的相关知识 绘制表面 所有的绘图应用程序都由三个公共组件组成: 一个画布,一个画笔,一个过程 画布是绘制对象的地方。例如在Windows应用程序中,一个Form就是一个画布 画笔或钢笔表示在画布上所绘制的对象的纹理,颜色和宽度等 过程描述了在画布上绘制对象的方式  每个绘制表面都有四个公共属性:宽度,高度,分辨率和颜色深度 其中分辨率属性是一

2007-03-15 22:10:00 727

原创 简介GDI+

 1,理解GDI+ GDI+可以简单的理解为GDI的一个生级版本。    GDI+是一个库,它提供了一个接口,此接口允许程序员编写与打印机,监视器或文件等图形设备进行交互的Windows和Web图形应用程序。是图形用户界面应用程序与硬件设备之间的第三个组件,完成两方面的交互.

2007-03-14 14:29:00 759

原创 C#中的序列化和反序列化

  序列化就是把一个对象转换为可以保存的形式,以利于保存和传输 反序列化就是把这种可保存的形式恢复为内存中的对象 .net提供了两种序列化的方法 1,二进制序列化 可以保留一个对象的所有的数据                       对于应用程序不同调用之间保留对象状态很有用 二进制序列化 使用BinaryFormatter 例: MyClass me = new MyClass(24,

2007-03-13 10:00:00 950

原创 C#装箱和取消装箱分析

 把值类型的实例转换为引用类的实例,就称为装箱,其逆过程称为取消装箱。在C#中,这种情况常常在我们未意识的情况下发生的。但是,理解发生了什么是很重要的,所以先介绍一下这两个过程:1, 把值类型转换为对象考虑下面代码ArrayList myArrayList = new ArrayList(); myArrayList.Add(new Money(2500.0)); 

2007-03-03 16:09:00 2732

原创 java中控件的事件处理流程

 在学习java的过程中,一直对java中控件的事件处理流程有点疑惑,现在有点头绪了,现总结如下,希望对初学者有点帮助。也希望大家指出其中的不足。1,向控件添加监听类对象 方式1:其中可以自已写这个类,添加一些处理,但这个类必须是java.awt.event.ActionListener类的子类 例如: jButtoncancel.addActionListener(new computewa

2007-01-11 22:07:00 1984

转载 孙鑫VC++讲座笔记-(4)MFC消息映射机制的剖析

 一,消息映射机制1,消息响应函数:(例:在CDrawView类响应鼠标左键按下消息) 1)在头文件(DrawView.h)中声明消息响应函数原型。//{{AFX_MSG(CDrawView)   //注释宏afx_msg void OnLButtonDown(UINT nFlags, CPoint point);//}}AFX_MSG   //注释宏说明:在注释宏之间的声明在VC中灰色显示。

2007-01-04 17:12:00 830

转载 孙鑫VC++讲座笔记-(3)MFC程序框架的剖析

1.小知识在MFC中,以_t开头的标识符是已定义的宏,例如:#define _tWinMain WinMain#define _tMain main以Afx(application framwork)开头命名的函数是系统定义的框架函数,作用是为了把MFC中的类有机的结合在一起。例如:AfxWinMain()在MFC中所有类都是以C开头2.系统自动生成的类以Test工

2007-01-03 20:39:00 885

转载 孙鑫VC++讲座笔记-(2) C++

  1, c语言中,结构体struct中不能包括函数的,而在C++中struct中可以包括函数。2,C++中结构体和类可以通用,区别主要表现在访问控制方面:struct中默认是public,而 class中默认的是private。3,构造函数最重要的作用是创建对象的本身,C++中每个类可以拥有多个构造函数,但必须至少有一个构造函数,当一个类中没有显式提供任何构造函数,C++编辑器自动提供一个默

2007-01-03 19:07:00 896

转载 孙鑫VC++讲座笔记-(1)Windows程序内部运行机制

1,windows程序设计是种事件驱动方式的程序设计,主要基于消息的。当用户需要完成某种功能时,需要调用OS某种支持,然后OS将用户的需要包装成消息,并投入到消息队列中,最后应用程序从消息队列中取走消息并进行响应。2,消息结构:typedef struct tagMSG {     // msg     HWND   hwnd;     //接收消息的窗口句柄。和哪个窗口相关联。    UINT 

2007-01-03 14:05:00 805

brew开发教程(硬件+软件)

对于现在从事软件开发很多人来说,都是直接接触的Windows操作系统,一开始学习的东西就是在Windows下的图形编程,尤其是可以快速开发的诸如VB、Delphi和C++ Builder等语言。它们的程序开发方式就像是作画一样,通过将控件放到对应的窗体上,然后设置属性,完成事件处理过程就可以生成一个像模像样的Windows程序了。虽然使用这种语言可以很容易的开发出应用程序来,但是却缺乏了对系统的深入了解,只知道怎么做,却不知道为什么这么做以及它是怎么实现的。归根结底,就是缺乏对底层实现原理的知识。正如本章的标题“勿在浮沙筑高塔”一样,缺乏根基总还是底气不足!不过别担心,在这部分里,我将讲述我们所需要的一些“根基”。当然如果您已经对这些知识有所了解,并且只想看看BREW是个什么样子,那么可以跳过这一部分,而直接进入到第二部分。

2009-06-16

空空如也

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

TA关注的人

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