【C/C++开发语言系列】
文章平均质量分 79
maojudong
� 数学知识既不是教出来的,也不是学出来的,而是研究出来的.——弗赖登塔尔� 数学是一种理性的精神,使人类的思维得以运用到最完善的程度——克莱因� 数学是知识的工具,亦是其它知识工具的泉源。所有研究顺序和度量的科学均和数学有关——笛卡儿� 数学是人类智慧皇冠上最灿烂的明珠——考特� 数学是一切知识中的最高形式——柏拉图� 数学是一种会不断进化的文化——魏尔德� 数学是上帝描述自然的符号——黑格尔� 数学是打开科学大门的钥匙——培根
展开
-
C/C++开发语言系列之2--const用法总结2
转:const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Use const whenever you need”。1.用const 修饰函数的参数如果参数作输出用,不论它是什么数据类型,也不论它采用“指针传递”还是“引用传递”,都不能加const 修饰,原创 2012-11-07 23:38:37 · 809 阅读 · 0 评论 -
C/C++开发语言系列之14---C++重载运算符
虽然重载运算符所实现的功能完全可以用函数实现,但是使用运算符重载能使用户程序易于编写、阅读和维护。在实际工作中,类的声明和类的使用往往是分离的。假如在声明Complex类时,对运算符+,-,*,/都进行了重载,那么使用这个类的用户在编程时可以完全不考虑函数是怎么实现的,放心大胆地直接使用+,-,*,/进行复数的运算即可,十分方便。对下面的运算符重载函数operator+还可以改写得更简练一些:原创 2012-11-15 09:25:06 · 2463 阅读 · 0 评论 -
C/C++开发语言系列之18---C++中的虚函数2
1.首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。 定义一个函数为纯虚函数,才代表函数没有被实现。定义他是为了实现一个接口,起到一个规范的作用,规范继承这个。类的程序员必须实现这个函数。 2.关于实例化一个类: 有纯虚函数的类是不可能生成类对象的,如果没有纯虚函数则可以。原创 2012-11-17 00:07:08 · 2302 阅读 · 0 评论 -
C/C++开发语言系列之20---C++类成员函数指针2
测试目录:1.普通函数指针指向普通函数2.普通函数指向非静态成员函数3. 类外部的 类函数指针 指向普通函数4. 类外部的 类函数指针 指向成员函数5. 类内部的 函数指针 指向成员函数 (类似于第2条)6. 类内部的 函数指针 指向普通函数直接上代码:#include #include #include #include using namespa原创 2012-11-17 16:41:55 · 4770 阅读 · 0 评论 -
C/C++开发语言系列之19---C++类成员函数指针
转 http://www.builder.com.cn/2008/0327/785349.shtml前言:在CSDN论坛经常会看到一些关于类成员函数指针的问题,起初我并不在意,以为成员函数指针和普通的函数指针是一样的,没有什么太多需要讨论的。当我找来相关书籍查阅了一番以后,突然意识到我以前对成员函数指针的理解太过于幼稚和肤浅了,它即不像我以前认为的那样简单,它也不像我以前认为的原创 2012-11-17 16:35:41 · 2408 阅读 · 0 评论 -
C/C++开发语言系列之16---C++不同类型数据间的转换
一、标准类型数据间的转换C++还提供显式类型转换,程序人员在程序中指定将一种指定的数据转换成另一指定的类型,其形式为 类型名(数据)如 int(89.5)其作用是将89.5转换为整型数89。对于用户自己声明的类型,编译系统并不知道怎样进行转换。解决这个问题的关键是让编译系统知道怎样去进行这些转换,需要定义专门的函数来处理。二、转换构造函数转换构造函数原创 2012-11-16 16:41:40 · 2342 阅读 · 0 评论 -
C/C++开发语言系列之17---C++中的虚函数1
1.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public: virtual void foo() { cout };class B: public A{public: virtual void foo() { cout原创 2012-11-17 00:03:57 · 2061 阅读 · 0 评论 -
C/C++开发语言系列之15---C++类型转换函数
用转换构造函数可以将一个指定类型的数据转换为类的对象。但是不能反过来将一个类的对象转换为一个其他类型的数据(例如将一个Complex类对象转换成double类型数据)。C++提供类型转换函数(type conversion function)来解决这个问题。类型转换函数的作用是将一个类的对象转换成另一类型的数据。如果已声明了一个Complex类,可以在Complex类中这样定义类型转换函数原创 2012-11-16 12:41:23 · 2730 阅读 · 0 评论 -
C/C++开发语言系列之22---C++纯虚函数1
转:http://blog.csdn.net/hackbuteer1/article/details/7558868首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必原创 2012-11-18 22:15:32 · 2087 阅读 · 0 评论 -
C/C++开发语言系列之25---不能声明为虚函数的函数
一、首先回顾下什么是虚函数及其作用,以便更好理解什么函数不能声明或定义为虚函数:1. 定义:虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public,在基类的类定义中定义虚函数的一般形式: virtual 函数返回值类型 虚函数名(形参表) { 函数体 }2. 作用:虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合原创 2012-11-18 23:36:39 · 2164 阅读 · 0 评论 -
C/C++开发语言系列之21---C++函数指针的2个例子
今天闲来无事,做了两个C++测试用例1. 定义一种普通函数 类型2. 如何理解返回函数的函数1.#include typedef void funcType(); //定义一种普通函数 类型 ,正常开发中用函数指针类型void test(){ cout<<"test"<<endl;}/*funcType felixFunc(){ ret原创 2012-11-17 22:31:28 · 2257 阅读 · 0 评论 -
C/C++开发语言系列之23---C++中虚析构函数的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout "Do原创 2012-11-18 22:41:36 · 2175 阅读 · 0 评论 -
C/C++开发语言系列之8---C++内置函数详解
调用函数时需要一定的时间和空间的开销。图4.5表示函数调用的过程:C++提供一种提高效率的方法,即在编译时将所调用函数的代码直接嵌入到主调函数中,而不是将流程转出去。这种嵌入到主调函数中的函数称为内置函数(inline function),又称内嵌函数。在有些书中把它译成内联函数。指定内置函数的方法很简单,只需在函数首行的左端加一个关键字in原创 2012-11-11 23:25:47 · 3002 阅读 · 0 评论 -
C/C++开发语言系列之9---C++函数模板详解
C++提供了函数模板(function template)。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。看下面的例子就清楚了。例4.7 将例4原创 2012-11-11 23:29:38 · 1700 阅读 · 1 评论 -
C/C++开发语言系列之1--const用法总结1
转1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:const i原创 2012-11-06 16:53:58 · 1006 阅读 · 0 评论 -
C/C++开发语言系列之4---普通继承和虚基类构造函数的初始化顺序1
1、虚基类的作用从上面的介绍可知:如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类数据成员的多份同名成员。在引用这些同名的成员时,必须在派生类对象名后增加直接基类名,以避免产生二义性,使其惟一地标识一个成员,如 c1.A::display( )。在一个类中保留间接共同基类的多份同名成员,这种现象是人们不希望出现的。C++提原创 2012-11-10 15:03:21 · 1403 阅读 · 0 评论 -
C/C++开发语言系列之26---C++复制(拷贝)构造函数
C++拷贝构造函数的细节在知道什么是拷贝构造函数前,先了解一下系统什么时候为我们创建默认的构造函数和拷贝构造函数构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。每个类只有一个析构函数 和一个赋值函数 ,但可以有多个构造函数 (包含一个拷贝构造函数 ,其它的称为普通构造函数 )。对于任意一个类 A原创 2012-11-24 18:11:22 · 3604 阅读 · 0 评论 -
C/C++开发语言系列之5---普通继承和虚基类构造函数的初始化顺序2
虚基类 : 如果某个派生类的部分或全部直接基类是从另一个共同的基类派生而来,在这些基类中,从上一级基类继承来的成员就有相同的名称,则在这个派生类中访问这个共同的基类中的成员时,可能会产生二义性,此时,可定义虚基类。这就要求在其直接基类的定义中,使用关键字 virtual 将那个共同的基类定义为虚基类,其语法形式如下: class 派生类名: virtual 派生方式 基原创 2012-11-10 15:05:39 · 2717 阅读 · 0 评论 -
C/C++开发语言系列之6---C++派生类的声明或定义方式
声明派生类的一般形式为 class 派生类名:[继承方式] 基类名{派生类新增加的成员};继承方式包括: public (公用的),private (私有的)和protected(受保护的),此项是可选的,如果不写此项,则默认为private(私有的)。此外,在声明派生类时,一般还应当自己定义派生类的构造函数和析构函数,因为构造函数和析构函数是不能从基类继承的。派生类是基类原创 2012-11-11 10:56:23 · 3420 阅读 · 0 评论 -
C/C++开发语言系列之7---C++基类与派生类的转换
只有公用派生类才是基类真正的子类型,它完整地继承了基类的功能。基类与派生类对象之间有赋值兼容关系,由于派生类中包含从基类继承的成员,因此可以将派生类的值赋给基类对象,在用到基类对象的时候可以用其子类对象代替。具体表现在以下几个方面:派生类对象可以向基类对象赋值。可以用子类(即公用派生类)对象对其基类对象赋值。如 A a1; //定义基类A对象a1 B b1; /原创 2012-11-11 20:02:27 · 1392 阅读 · 0 评论 -
C/C++开发语言系列之10---C++中消息的另外一种理解
类的成员函数在面向对象程序理论中被称为“方法”(method),“方法”是指对数据的操作。一个“方法”对应一种操作。显然,只有被声明为公用的方法(成员函数)才能被对象外界所激活。外界是通过发“消息”来激活有关方法的。所谓“消息”,其实就是一个命令,由程序语句来实现。前面的stud.display( );就是向对象stud发出的一个“消息”,通知它执行其中的display“方法”(即disp原创 2012-11-12 07:45:00 · 1110 阅读 · 0 评论 -
C/C++开发语言系列之11---使用默认参数的构造函数
构造函数中参数的值既可以通过实参传递,也可以指定为某些默认值,即如果用户不指定实参值,编译系统就使形参取默认值。在构造函数中也可以采用这样的方法来实现初始化。例9.3的问题也可以使用包含默认参数的构造函数来处理。例9.4 将例9.3程序中的构造函数改用含默认值的参数,长、宽、高的默认值均为10。在例9.3程序的基础上改写如下:#include using namespace原创 2012-11-12 08:14:08 · 3689 阅读 · 1 评论 -
C/C++开发语言系列之12---C++析构函数的定义和使用
析构函数(destructor)也是一个特殊的成员函数,它的作用与构造函数相反,它的名字是类名的前面加一个“~”符号。在C++中“~”是位取反运算符,从这点也可以想到:析构函数是与构造函数作用相反的函数。当对象的生命期结束时,会自动执行析构函数。具体地说如果出现以下几种情况,程序就会执行析构函数:①如果在一个函数中定义了一个对象(它是自动局部对象),当这个函数被调用结束时,对象原创 2012-11-12 21:48:57 · 4656 阅读 · 1 评论 -
C/C++开发语言系列之13---C++对象指针—指向对象的指针
在建立对象时,编译系统会为每一个对象分配一定的存储空间,以存放其成员。对象空间的起始地址就是对象的指针。可以定义一个指针变量,用来存放对象的指针。如果有一个类:class Time{ public : int hour; int minute; int sec; void get_time( );};void Time::get_ti原创 2012-11-12 22:14:06 · 2420 阅读 · 0 评论 -
C/C++开发语言系列之24---C++关键字
方便查找之用关键字是预先保留的标识符,每个关键字都有特殊的含义。我们不能在程序中使用与关键字同名的标识符。以下是C++所保留的关键字 (66个)asmautobad_castbad_typeidboolbreakcasecatchcharclassconst原创 2012-11-18 22:43:26 · 2323 阅读 · 0 评论