2016年9月3日
摘要: 访问字符串中的字符 string 字符串也可以像字符串数组一样按照下标来访问其中的每一个字符。string 字符串的起始下标仍是从 0 开始。请看下面的代码: 本例中定义了一个 string 变量 s1,并赋值 "1234567890",之后用 for 循环遍历输出每一个字符。借助下标,除了能够访问 阅读全文
posted @ 2016-09-03 15:10 白宫飘红旗 阅读(870) 评论(0) 推荐(0) 编辑
摘要: C++大大增强了对字符串的支持,除了可以使用C风格的字符串,还可以使用内置的数据类型 string。string 类处理起字符串来会方便很多,完全可以代替C语言中的 char 数组或 char 指针。 使用 string 类需要包含头文件 <string>,下面我们逐一介绍该类的功能。 string 阅读全文
posted @ 2016-09-03 14:15 白宫飘红旗 阅读(183) 评论(0) 推荐(0) 编辑
摘要: C++对模板类的支持比较灵活,模板类的参数中除了可以有类型参数,还可以有普通参数。例如: N 是一个普通参数,用来传递数据,而不是类型,它与常见的函数中的参数一样,可以在类体中使用。这称为模板中的函数式参数。 T 用来传递数据的类型,N 用来传递数据的值,数据的值和类型都可以参数化,这是典型的面向对 阅读全文
posted @ 2016-09-03 13:42 白宫飘红旗 阅读(195) 评论(0) 推荐(0) 编辑
摘要: C++除了支持模板函数,还支持模板类。模板类的目的同样是将数据类型参数化。 声明模板类的语法为: 模板类和模板函数都是以 template 开头,后跟数据类型参数列表;数据类型参数不能为空,多个参数用逗号隔开。 一但声明了模板类,就可以用数据类型参数来声明类中的成员变量和成员函数。也就是说,原来使用 阅读全文
posted @ 2016-09-03 11:59 白宫飘红旗 阅读(197) 评论(0) 推荐(0) 编辑
  2016年9月2日
摘要: 在《C++函数重载》一节中,为了求三个数的最大值,我们通过函数重载定义了三个名字相同、参数列表不同的函数,如下所示: 这些函数虽然在调用时方便了一些,但从本质上说还是定义了三个功能相同、函数体相同的函数,仍然不够节省代码。能不能把它们压缩成一个呢? 能!可以借助本节讲的函数模板。我们知道,数据或数值 阅读全文
posted @ 2016-09-02 20:42 白宫飘红旗 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 内存管理运算符 new、new[]、delete 和 delete[] 也可以进行重载,其重载形式既可以是类的成员函数,也可以是全局函数。一般情况下,内建的内存管理运算符就够用了,只有在需要自己管理内存时才会重载。 重载 new 有两种形式: 和 两种重载形式的返回值相同,都是void *类型,并且 阅读全文
posted @ 2016-09-02 00:36 白宫飘红旗 阅读(241) 评论(0) 推荐(0) 编辑
  2016年9月1日
摘要: 和普通变量一样,对象之间也可以相互赋值。赋值运算符“=”可以用来将一个对象拷贝给另一个已经存在的对象。对象之间的赋值是将成员变量依次拷贝,而不是将整个对象的内存按位拷贝。 对象之间的赋值: 一般情况下,默认的“=”就能满足我们的需求,但是当一个类中包含指针类型的成员变量时,可能会带来问题。请看下面的 阅读全文
posted @ 2016-09-01 21:45 白宫飘红旗 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 自增“++”和自减“--”都是一元运算符,它的前置形式和后置形式都可以被重载。请看下面的例子: 上面的代码定义了一个简单的秒表类,min 表示分钟,sec 表示秒钟,setzero() 函数用于秒表清零,run() 函数是用来描述秒针前进一秒的动作,接下来是三个运算符重载函数。 先来看一下 run( 阅读全文
posted @ 2016-09-01 20:54 白宫飘红旗 阅读(686) 评论(0) 推荐(0) 编辑
  2016年8月31日
摘要: 前面已经提到,下标操作符[]必须以类的成员函数的形式进行重载。在类中的声明格式如下: 或 使用第一种声明方式,操作符重载函数不仅可以访问对象,同时还可以修改对象。使用第二种声明方式,操作符重载函数只能访问而不能修改对象。 默认情况下,通过下标访问数组中的元素并不具有检查边界溢出功能,我们可以通过重载 阅读全文
posted @ 2016-08-31 21:37 白宫飘红旗 阅读(1546) 评论(0) 推荐(0) 编辑
摘要: 在C++中,系统已经对左移运算符“<<”和右移运算符“>>”分别进行了重载,使其能够用于输入输出,但是输入输出的处理对象只能是系统内建的数据类型。系统重载这两个运算符是以系统类成员函数的形式进行的,因此cout<< var语句可以理解为: 如果我们自己定义了一种新的数据类型,需要用输入输出运算符去处 阅读全文
posted @ 2016-08-31 21:06 白宫飘红旗 阅读(3218) 评论(0) 推荐(0) 编辑