摘要: http://blog.csdn.net/daheiantian/article/details/6530318异常的基本语法1. 抛出和捕获异常 很简单,抛出异常用throw,捕获用try……catch。 捕获异常时的注意事项: 1. catch子句中的异常说明符必须是完全类型,不可以为前置声明,因为你的异常处理中常常要访问异常类的成员。例外:只有你的catch子句使用指针或者引用接收参数,并且在catch子句内你不访问异常类的成员,那么你的catch子句的异常说明符才可以是前置声明的类型。 2. catch的匹配过程是找最先匹配的,不是最佳匹配。 3. catch的匹配过程中,对类型的要求 阅读全文
posted @ 2012-12-14 23:47 我不是geek 阅读(485) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/assemble8086/archive/2011/10/02/2198308.html有详细介绍,下面只讲什么时候模板类会实例化以及模板类中成员函数实例化和友元函数的使用。模板类的使用实现了编译时多态性,避免了运行时多态性的消耗(虚指针和虚函数表),但是编译时多态和运行时多态并不冲突,编译时多态是根据传入模板的对象类型实现不同的操作完成,比如继承同一接口的不同类型可以在编译时根据调用接口的队形类型实现多态,而运行时多态则根据虚函数来实现,必须等到运行时才能判断真正运行的接口。当模板类中使用虚函数时,模板实例化的时候必须实例化器虚函数表,一旦虚函数 阅读全文
posted @ 2012-12-14 23:38 我不是geek 阅读(5747) 评论(0) 推荐(0) 编辑
摘要: 在局部变量前加上“static”关键字,就成了静态局部变量。静态局部变量存放在内存的全局数据区。函数结束时,静态局部变量不会消失,每次该函数调用时,也不会为其重新分配空间。它始终驻留在全局数据区,直到程序运行结束。静态局部变量的初始化与全局变量类似.如果不为其显式初始化,则C++自动为其初始化为0。 静态局部变量与全局变量共享全局数据区,但静态局部变量只在定义它的函数中可见。静态局部变量与局部变量在存储位置上不同,使得其存在的时限也不同,导致对这两者操作 的运行结果也不同。对静态局部变量的说明:(1) 静态局部变量在静态存储区内分配存储单元。在程序整个运行期间都不释放。而自动变量(即动态局部. 阅读全文
posted @ 2012-12-13 10:53 我不是geek 阅读(535) 评论(0) 推荐(0) 编辑
摘要: 一.多重继承#include <iostream>using namespace std;class Base1{public: Base1(){ cout << "Base1::Base1()" << endl;} virtual ~Base1(){ cout << "Base1::~Base1()" << endl;} virtual void speakClearly(){ cout << "Base1::speakClearly()" << e 阅读全文
posted @ 2012-12-13 10:28 我不是geek 阅读(506) 评论(0) 推荐(0) 编辑
摘要: C++中的引用与指针的区别指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一个内存地址,编译器不能通过该指针所指向对象的类型和大小,因此想要通过void*指针操作对象必须进行类型转化。 ★ 相同点: 1. 都是地址的概念; 指针指向一块内存,它的内容是所指内存的地址; 引用是某块内存的别名。 ★ 区别: 1. 指针是一个实体,而引用仅是个别名; 2. 引用使用时无需解引用(*),指针需要解引用; 3. 引用只能在定义时被初始化一次,之后不可变;指针可变; 引用“从一而终” ^_^ 4. 引用... 阅读全文
posted @ 2012-12-04 15:56 我不是geek 阅读(26156) 评论(5) 推荐(3) 编辑
摘要: 线程操作主要用到Thread类,他是定义在System.Threading.dll下。使用时需要添加这一个引用。该类提供给我们四个重载的构造函数(以下引自msdn)。Thread(ParameterizedThreadStart)初始化Thread类的新实例,指定允许对象在线程启动时传递给线程的委托。Thread(ThreadStart)初始化Thread类的新实例。由.NETCompactFramework支持。Thread(ParameterizedThreadStart,Int32)初始化Thread类的新实例,指定允许对象在线程启动时传递给线程的委托,并指定线程的最大堆栈大小。Thre 阅读全文
posted @ 2012-11-28 17:09 我不是geek 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 有时候写的.NET程序需要加载动态链接库文件,或者我们写的动态链接库文件需要被像AutoCAD、MATLB等程序加载,通常简单的加载没有任何问题,只是,有时候可能需要使用到dll文件夹下其他一些资源或者另外的链接库,这个时候获取动态链接库文件所在的文件夹路径就显得比较重要了,传统的一些方法(如下)并不能凑效:Application.StartupPathApplication.ExecutablePathAppDomain.CurrentDomain.BaseDirectorySystem.Threading.Thread.GetDomain().BaseDirectoryEnvironmen 阅读全文
posted @ 2012-11-28 15:32 我不是geek 阅读(672) 评论(0) 推荐(0) 编辑
摘要: 影响文件安全性的主要因素,第一是人为因素,即由于人们有意或无意的行为,而使文件系统中的数据遭到破坏或丢失;第二是系统因素,即由于系统的某部分出现异常情况,而造成对数据的破坏或丢失,特别是作为数据存储介质的磁盘,在出现故障或损坏时,会对文件系统的安全性造成影响;第三是自然因素,即存放在磁盘上的数据,随着时间的推移将可能发生溢出或逐渐消失。为了确保文件系统的安全性,可针对上述原因而采取以下措施:(1)通过存取控制机制来防止由人为因素所造成的文件不安全性。(2)通过磁盘容错技术,来防止由磁盘部分的故障所造成的文件不安全性。(见4.5.5独立磁盘冗余阵列(RAID)技术)(3)通过“后备系统”来防止由 阅读全文
posted @ 2012-11-27 22:19 我不是geek 阅读(2062) 评论(0) 推荐(0) 编辑
摘要: 磁盘的逻辑组织一个物理磁盘在逻辑上可分为几个区域,分区信息存放在主引导块分区表中。分区表中保存磁盘各种分区起始和终止的磁头、柱面、扇区、总的扇区数等信息。在主引导块中有三种类型分区:主分区、扩展区和逻辑分区。主分区是常用的,加载一个操作系统所需文件安装其上,操作系统必须从主分区上引导,一个硬盘上只能有四个主分区。为了突破四个分区的限制,就要在四个分区中创建立一个扩展分区。扩展分区其实是一个逻辑盘,它不能格式化,也不能分配盘符。但可在扩展分区中创建一个或多个逻辑分区,或称逻辑驱动器、卷(volume)。每个逻辑分区分配一个盘符,可以格式化成一个特定的文件系统。为了实现存储空间的分配和回收,系统应 阅读全文
posted @ 2012-11-25 21:27 我不是geek 阅读(4684) 评论(0) 推荐(0) 编辑
摘要: 上篇说到文件内部的逻辑结构和物理结构,而如何在系统中实现按文件名存取文件是非常重要的,也就是如何实现文件名到物理存储地址的转换。为了实现“按名存取”,系统必须为每个文件设置用于描述和控制文件的数据结构,它至少要包括文件名和存放文件的盘物理地址,这个数据结构称为文件控制块FCB,文件控制块的有序集合称为文件目录,即一个文件控制块FCB就是一个文件目录项。文件控制块FCB中包含的信息有以下三类:1. 基本信息类文件名:标识一个文件的符号名,在每个系统中文件必须具有唯一的名字。. 文件的物理地址:这由于文件的物理结构不同而不同。对于连续文件就是文件的起始块号和文件总块数;对于MS-DOS是文件的起始 阅读全文
posted @ 2012-11-25 20:47 我不是geek 阅读(3045) 评论(0) 推荐(0) 编辑