摘要: 在C语言中是没有异常处理机制的,异常处理是C++中的一个对程序运行出错或逻辑出错的一个处理机制,因为C++处理的问题比C语言处理的问题更为复杂,所以不能像C那样,总是假定程序能正常运行,不会发生错误。在C中要想处理程序运行中出现的错误,也只能够用if语句去逐个检查和判断。不幸当发生问题时,程序直接崩溃,没有提供出错信息,让人摸不着头脑。C++中的异常处理使我们能够将问题的检测和问题的解决分离,这样程序的问题检测部分可以不必了解如何处理问题。异常处理中,需要由问题检测部分招聘一个对象给处理代码,通过这个对象的类型和内容,两个部分能够就出现了什么错误进行通信,并向处理外部提供出错信息给用户或在.. 阅读全文
posted @ 2012-07-16 11:17 倦飞L 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 模板前天看了primer有关类的继承的内容,并做了一些笔记,昨天和今天看了C++里面的泛型编程的模板,现在也来总结一下吧。一、定义模板定义:模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数, 从而实现了真正的代码可重用性。模版可以分为两类,一个是函数模版,另外一个是类模版。在C++中,模板是泛型编程的基础,模板是创建类或函数的蓝图或公式。模板定义为以关键字template开始,后接模板形参表,模板形参表用尖括号挺住的一个或多个模板形参的列表,形参之间以逗号分隔。模板形参表不能为空。例如:Template <typename T> int fun(cons 阅读全文
posted @ 2012-07-15 17:46 倦飞L 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 当然是转载的叻...1. C++ Builder 网上资源C++ Builder 研究http://www.ccrun.com/C++ Builder 程序员http://mybcb.diy.myrice.com/电脑学习 C++ Builder版块http://www.itcomputer.com.cn/Programs/C/CB/c++ Builder 快捷键大全:http://www.itcomputer.com.cn/Programs/C/CB/200512/11211.htmlC++ Builder IDE 使用技巧:http://www.itcomputer.com.cn/Prog 阅读全文
posted @ 2012-07-15 10:37 倦飞L 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 首先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针。如果还有一个变量myclass mz,mz的this就是指向mz的指针。 这样就很容易理解this 的类型应该是myclass *,而对其的解引用*this就应该是一个myclass类型的变量。通常在 阅读全文
posted @ 2012-07-14 14:31 倦飞L 阅读(132) 评论(0) 推荐(0) 编辑
摘要: C++中的虚函数一、定义定义:在某基类中声明为 virtual并在一个或多个派生类中被重新定义的成员函数。 语法:virtual 函数返回类型函数名(参数表) { 函数体 } 用途:实现多态性,通过指向派生类的基类指针,访问派生类中同名覆盖成员函数 虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public。定义为virtual的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数。二、作用虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,可以在基类的派生类中对虚函数重新定义,在派生类中重新定义的函数应.. 阅读全文
posted @ 2012-07-14 14:22 倦飞L 阅读(146) 评论(0) 推荐(0) 编辑
摘要: C++面向对象编程(二)一、重载与覆盖成员函数被重载的特征:(1 )相同的范围(在同一个类中);(2 )函数名字相同;(3 )参数不同;(4 )virtual关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1 )不同的范围(分别位于派生类与基类);(2 )函数名字相同;(3 )参数相同;(4 )基类函数必须有virtual关键字。二、隐藏规则(1 )如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。(2 )如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被 阅读全文
posted @ 2012-07-14 11:30 倦飞L 阅读(124) 评论(0) 推荐(0) 编辑
摘要: C++面向对象编程(一)今天看了一点primer中有关面向对象编程的内容,以下是自己的一点总结。一、关于虚函数1、定义为virtual的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数。在派生类中重新定义的函数应与虚函数具有相同的形参个数和形参类型。以实现统一的接口,不同定义过程。2、通过基类的引用(或指针)调用虚函数时,发生动态绑定。引用(或指针)既可以指向基类对象也可以指向派生类对象,这一事实是动态绑定的关键。用引用(或指针)调用的虚函数在运行时确定,被调用的函数是引用(或指针)所指对象的实际类型所定义的。3、继承层次的根类一般都要定义虚析构函数。而构造函数不能被定 阅读全文
posted @ 2012-07-13 22:11 倦飞L 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 初窥数据结构由于今晚开会,伟杰师兄会说数据结构,所以今天下午就用了一点时间看了一下数据结构,谈谈今天的收获吧!首先,知道了什么是数据结构,数据结构是指数据以及相互之间的联系,可以看作是相互之间存在着某种特定关系的数据元素的集合,可以把数据结构看成是带结构的数据元素的集合。然后了解了数据结构包括哪些方面。1、数据元素之间的逻辑关系,即数据的逻辑结构。2、数据元素及其关系在计算机存储器中的存储方式,即数据的存储结构,也称为数据的物理结构。3、施加在该数据上的操作,即数据的运算。逻辑结构类型包括,集合,线性结构(一对一)、树形结构(一对多)、图形结构(多对多)。树形结构和图形结构都是非线性结构。了解 阅读全文
posted @ 2012-07-12 22:37 倦飞L 阅读(191) 评论(0) 推荐(0) 编辑
摘要: ——摘自百度百科1、静态数据成员 在类内数据成员的声明前加上关键字static,该数据成员就是类内的静态数据成员。先举一个静态数据成员的例子。 //Example 5 #include <iostream.h> class Myclass { public: Myclass(int a,int b,int c); void GetSum(); private: int a,b,c; static int Sum;//声明静态数据成员 }; int Myclass::Sum=0;//定义并初始化静态数据成员 Myclass::Myclass(... 阅读全文
posted @ 2012-07-12 11:53 倦飞L 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 构造函数1、构造函数的与类的名字相同,并且不能指定返回类型,不能声明为const。因为构造函数的工作是初始化对象,不管对象是否为const,都用一个构造函数来初始化该对象。2、构造函数分两个阶段执行:(1)初始化阶段;(2)普通的计算阶段。3、使用构造函数初始化列表的版本初始化数据成员,没有定义初始化列表的构造函数版本在构造函数函数体中对数据成员赋值。4、没有默认构造函数的类类型的成员,以及const或引用类型的成员,不管是哪种类型,都必须在构造函数初始化列表中进行初始化。5、成员初始化的次序就是定义成员的次序。按照与成员声明一致的次序编写构造函数初始化列表是个好习惯。6、可以通过将构造函数声 阅读全文
posted @ 2012-07-11 11:48 倦飞L 阅读(229) 评论(0) 推荐(0) 编辑