C++进阶
文章平均质量分 92
zqixiao_09
这个作者很懒,什么都没留下…
展开
-
C++ 控制结构和函数(二) —— 函数I(Functions I)
通过使用函数(functions)我们可以把我们的程序以更模块化的形式组织起来,从而利用C++所能提供的所有结构化编程的潜力。一个函数(function)是一个可以从程序其它地方调用执行的语句块。以下是它的格式: type name ( argument1, argument2, ...) statement 这里:type 是函数返回的数据的类原创 2016-05-22 12:06:12 · 1712 阅读 · 0 评论 -
C++ 面向对象(四)—— 多态 (Polymorphism)
为了能更好的理解本节内容,你需要清楚的知道怎样使用指针pointers 和类之间的继承 inheritance between classes。建议如果你觉得以下这些表达式比较生疏的的话, 请复习指定的章节:int a::b(c) {}; // 类Classes (Section 4.1)a->b // 指针和对象pointers and objects原创 2016-05-22 12:41:42 · 4001 阅读 · 0 评论 -
C++ 面向对象(三)—— 类之间的关系
友元函数(Friend functions)在前面的章节中我们已经看到了对class的不同成员存在3个层次的内部保护:public, protected 和 private。在成员为 protected 和 private的情况下,它们不能够被从所在的class以外的部分引用。然而,这个规则可以通过在一个class中使用关键字friend来绕过,这样我们可以允许一个外部函数获得访问class的原创 2016-05-22 12:39:54 · 5080 阅读 · 0 评论 -
C++ 面向对象(二)—— 操作符重载
C++ 实现了在类(class)之间使用语言标准操作符,而不只是在基本数据类型之间使用。例如:int a, b, c;a = b + c;是有效操作,因为加号两边的变量都是基本数据类型。然而,我们是否可以进行下面的操作就不是那么显而易见了(它实际上是正确的):struct { char product [50]; float price; } a, b, c;a = b + c原创 2016-05-22 12:38:09 · 3230 阅读 · 0 评论 -
C++ 高级数据类型(六)—— 自定义数据类型
前面我们已经看到过一种用户(程序员)定义的数据类型:结构。除此之外,还有一些其它类型的用户自定义数据类型: 定义自己的数据类型 (typedef)C++ 允许我们在现有数据类型的基础上定义我们自己的数据类型。我们将用关键字typedef来实现这种定义,它的形式是:typedef existing_type new_type_name;这里 existing_type 是C+原创 2016-05-22 12:32:36 · 3631 阅读 · 0 评论 -
C++ 高级数据类型(五)—— 数据结构
一个数据结构是组合到同一定义下的一组不同类型的数据,各个数据类型的长度可能不同。它的形式是:struct model_name {type1 element1;type2 element2;type3 element3;..} object_name;这里model_name 是一个这个结构类型的模块名称。object_name 为可选参数,是一个或多个具体原创 2016-05-22 12:31:35 · 6472 阅读 · 0 评论 -
C++ 高级数据类型(四)—— 动态内存分配
到目前为止,我们的程序中我们只用了声明变量、数组和其他对象(objects)所必需的内存空间,这些内存空间的大小都在程序执行之前就已经确定了。但如果我们需要内存大小为一个变量,其数值只有在程序运行时 (runtime)才能确定,例如有些情况下我们需要根据用户输入来决定必需的内存空间,那么我们该怎么办呢?答案是动态内存分配(dynamic memory),为此C++ 集成了操作符new 和del原创 2016-05-22 12:30:18 · 3914 阅读 · 0 评论 -
C++ 控制结构和函数(一) —— 控制结构
一个程序的语句往往并不仅限于线性顺序结构。在程序的执行过程中它可能被分成两支执行,可能重复某些语句,也可能根据一些判断结果而执行不同的语句。因此C++ 提供一些控制结构语句 (control structures) 来实现这些执行顺序。为了介绍程序的执行顺序,我们需要先介绍一个新概念:语句块(block of instructions)。一个语句块(A block of instruction原创 2016-05-22 12:03:00 · 2059 阅读 · 0 评论 -
C++ 高级数据类型(二)—— 字符序列
前面基础知识部分讲C++变量类型的时候,我们已经提到过C++的标准函数库提供了一个string类来支持对字符串的操作。然而,字符串实际就是一串连续的字符序列,所以我们也可以用简单的字符数组来表示它。例如,下面这个数组:char jenny [20];是一个可以存储最多20个字符类型数据的数组。你可以把它想象成:理论上这数组可以存储长度为20的字符序列,但是它也可以存储比这短原创 2016-05-22 12:25:52 · 2387 阅读 · 0 评论 -
C++ 高级数据类型(三)—— 指针
我们已经明白变量其实是可以由标识来存取的内存单元。但这些变量实际上是存储在内存中具体的位置上的。对我们的程序来说,计算机内存只是一串连续的单字节单元(1byte cell),即最小数据单位,每一个单元有一个唯一地址。计算机内存就好像城市中的街道。在一条街上,所有的房子被顺序编号,每所房子有唯一编号。因此如果我们说芝麻街27号,我们很容易找到它,因为只有一所房子会是这个编号,而且我们知道它会在2原创 2016-05-22 12:27:24 · 8199 阅读 · 0 评论 -
C++ 高级数据类型(一)—— 数组
数组(Arrays) 是在内存中连续存储的一组同种数据类型的元素(变量),每一数组有一个唯一名称,通过在名称后面加索引(index)的方式可以引用它的每一个元素。也就是说,例如我们有5个整型数值需要存储,但我们不需要定义5个不同的变量名称,而是用一个数组(array)来存储这5个不同的数值。注意数组中的元素必须是同一数据类型的,在这个例子中为整型(int)。例如一个存储5个整数叫做bill原创 2016-05-22 12:24:32 · 6260 阅读 · 0 评论 -
C++ 控制结构和函数(三)—— 函数II(Functions II)
参数按数值传递和按地址传递(Arguments passed by value and by reference)到目前为止,我们看到的所有函数中,传递到函数中的参数全部是按数值传递的(by value)。也就是说,当我们调用一个带有参数的函数时,我们传递到函数中的是变量的数值而不是变量本身。 例如,假设我们用下面的代码调用我们的第一个函数addition :int x=5, y=3,原创 2016-05-22 12:08:04 · 1963 阅读 · 2 评论 -
C++ 面向对象(一)—— 类(Classes)
类(class)是一种将数据和函数组织在同一个结构里的逻辑方法。定义类的关键字为class ,其功能与C语言中的struct类似,不同之处是class可以包含函数,而不像struct只能包含数据元素。类定义的形式是: class class_name { permission_label_1: member1; permis原创 2016-05-22 12:35:07 · 39494 阅读 · 5 评论