
C++初学者指南
每天进步一..
AL, IGCSE, IFD Computer Science teacher
展开
-
C++ 初学者指南 第五篇(11)
必备技能5.11:函数原型 在本章开始的时候我们对函数的原型进行了简单的讨论。现在我们要对函数的原型进行更深入的讨论。在C++中,函数在使用之前是必须声明的。通常,这个是通过函数原型来完成的。函数原型中说明了函数的三部分内容:1. 函数的返回类型2. 函数参数翻译 2010-06-02 22:56:00 · 912 阅读 · 2 评论 -
C++初学者指南 第九篇(9)
运算符重载翻译 2010-09-24 16:59:00 · 762 阅读 · 0 评论 -
C++初学者指南 第七篇(11)
复合赋值翻译 2010-07-09 11:01:00 · 686 阅读 · 0 评论 -
c++ 初学者指南 第八篇(4)
项目8-1 用类来实现第三篇章中的项目3-1的帮助系统功能翻译 2010-08-14 19:22:00 · 890 阅读 · 0 评论 -
c++初学者指南 第八篇(1)
类的通用形式翻译 2010-07-12 09:53:00 · 937 阅读 · 0 评论 -
C++ 初学者指南 第四篇(11)
必备技能 4.10:指针表达式 在大部分的C++表达式中都可以使用指针。然而,指针的使用还是有一些规则的。还需要注意在使用指针的时候我们可能需要使用括号来把表达式的部分括起来,以便得到我们预期的结果。指针用于算术表达式 只有四种可以用于指针的算术运算符:++,--,+和-。为了理解指针用于算术表达式会发生什么,我们假设p1是一个int类型的指针,p1的值为2000(也就翻译 2010-05-21 17:09:00 · 1371 阅读 · 4 评论 -
C++ 初学者指南 第一篇(3)
必备技能1.3:面向对象的编程 C++的中心是围绕着面向对象的编程。正如前面介绍的那样,面向对象的编程是促进C++产生的主要因素。正是因为这一点,在学习编写简单的C++程序之前,理解面向对象编程的基本思想是非常重要的。 面向对象的编程很好地利用了结构化编程的思想,并增加了一些新的概念,能够更好地组织程序。通常情况下,有两种方式来组织程序:以代码为中心或者以数据为中心。通过翻译 2009-11-16 21:26:00 · 2020 阅读 · 3 评论 -
C++ 初学者指南 第四篇(8)
必备技能 4.7: 字符串数组 一种特殊的二维数组就是字符串数组。在程序中使用字符串构成的数组并不罕见。比如在需要访问数据库的程序中,输入进程需要使用字符串数组来对用户键入的命令进行有效性验证。我们使用二维的字符数组来创建字符串数组。其中的左索引用来表示字符串的数量,右索引用来表示字符串的最大长度。包括字符串结束标志。例如,下面的代码片段声明了30个字符串的数组,每个字符串的最大长翻译 2010-05-21 16:59:00 · 1335 阅读 · 4 评论 -
C++ 初学者指南 第一篇(14)
必备技能1.12:标识符 在C++中,一个标识符可以是一个函数、变量或者任何其它用户自定义项目的名字。标识符可以是一个到几个字符的长度。变量的名字可以是以字母表中任意字符开始或者以下划线开始。后面接着字母,数字或者一个下划线。使用下划线可以增强变量名字的可读性,诸如变量line_count。大写字母和小写字母是有区分的;也就是说,在C++中,myvar和MyVar是两个不同的名字。还翻译 2009-11-26 21:34:00 · 1178 阅读 · 0 评论 -
C++ 初学者指南 第四篇(9)
必备技能 4.8:指针 指针是C++中最强大的一个特性之一。同时它也是最容易出问题的一个特性。尽管在使用指针的时候很容易出错,指针仍是C++中的一个关键部分。例如,指针使得C++可以支持链表和动态内存分配。它还提供了一种由函数来改变参数的内容的方法。然而,这些和其它的指针的用法将在本书的后续章节中进行讨论。本章中,我们将学习指针的基本知识和一些简单的使用方法。什么是指针?翻译 2010-05-21 17:03:00 · 1137 阅读 · 4 评论 -
C++初学者指南 第一篇 (1)
第一篇 C++基础 如果说有一种语言定义了当今编程的实质,那么它就是C++。它是高性能软件开发的杰出语言。它的语法已经成为专业编程语言的标准,并且它的设计思想在计算界引起深刻的反响。 Java和C#语言都是从C++继承而来的。简而言之,要成为专业的编程人员就意味着要深刻理解C++。它是现代编程的基础。本篇旨在介绍C++,包括它的历史,它的设计思想,以及几个最重要的特性。翻译 2009-11-07 09:22:00 · 3873 阅读 · 3 评论 -
C++ 初学者指南 第一篇(2)
必备技能1.2:C++与Java和C#的关系 除了C++之外,还有两个重要的现代编程语言:Java和C#。Java是有Sun Microsystems 公司开发的,而C#则是由微软公司开发的。由于人们有时会对C++与Java和C#的关系产生一些混淆,这里有必要对此介绍一下。C++是Java和C#之父。尽管Java和C#都是在C++的基础上对语言的特性进行了一些增加,删除和改动,但是总翻译 2009-11-10 21:39:00 · 2108 阅读 · 1 评论 -
C++ 初学者指南 第一篇(13)
必备技能1.11:C++中的关键字 标准C++目前定义了63个关键字,如表格1-1所示。它们和正式的语法一起形成了C++语言。早期的C++版本定义了overload关键字,但是现在他已经被废弃了。请记住C++是一个大小写敏感的语言,并且要求所有的关键字都必须是小写的。 asmautoboolbreak翻译 2009-11-25 16:20:00 · 1121 阅读 · 0 评论 -
C++ 初学者指南 第四篇(13)
项目 4-2 字符串倒置 我们曾经在前面提到过只有当两个指针指向同一个对象的时候,指针的比较才是有意义的。然后我们又学习了指针和数组之间的关系,这样我们就可以用指针的比较来简化某些算法了。在下面的项目中,我们就将看到这样的一个例子。下面的这个程序完成对存储在数组中的字符串进行倒置的功能。它不是把一个字符串从尾部到首部复制到另外一个字符串中,而是在存储该字符串的数组上完成该字符串的倒置翻译 2010-05-21 17:14:00 · 1163 阅读 · 2 评论 -
C++ 初学者指南 第四篇(12)
必备技能 4.11: 指针和数组 在C++中,指针和数组有着紧密的联系。实际上,指针和数组经常是可以互换的。考虑下面的代码片段:char str[80];char *p1;p1=str;这里,str是一个80个字符大小的数组,p1是一个字符指针。然而,第三行的代码就很有意思了。该行中,p1被赋值为数组str中的第一个元素的地址。(也就是说在这个语句之后,p1就指向st翻译 2010-05-21 17:12:00 · 1279 阅读 · 4 评论 -
C++ 初学者指南 第五篇(3)
必备技能5.3:使用参数 函数还可以使用参数。传递给函数的参数叫做实参(arguments)。参数是一种把信息带入到函数中的一种方式。 当我们创建一个需要一个或者多个参数的函数的时候,也必须声明用于接收这些参数的变量。这些变量叫做函数的形参(parameters)。下面就是一个示例,其中定义了一个名称为box()的函数。它用来计算一个盒子的体积并输出结果。它需要三个参数。翻译 2010-05-28 10:29:00 · 1042 阅读 · 2 评论 -
C++ 初学者指南 第五篇(2)
必备技能5.2:创建一个函数 创建函数是一个非常简单的过程。既然所有的函数都有着相同的形式,那么它们在结构上应该都和我们一直使用的main()函数是类似的。下面让我们从一个简单的示例程序开始。这个程序中还有两个函数:main()和myfunc()。在运行下面的程序之前,请仔细研究下面的程序,看看自己能否想出下面的程序会在屏幕上输出什么结果。#include using nam翻译 2010-05-27 15:46:00 · 1029 阅读 · 2 评论 -
C++ 初学者指南 第五篇(1)
第五章 函数 本章我们将深入讨论函数。函数是C++程序的基本构成单元,深刻的理解函数是我们成为一个成功的C++程序员的基础。本章中,我们就要学习到如何创建函数。除此之外,我们还将学习函数的参数传递,函数的返回值,局部和全局变量,函数的原型以及递归。函数的基础知识 一个函数就是含有一条或者多条C++语句,用来完成一项特定任务的子程序。到目前为止,我们所编写的所有程序都翻译 2010-05-27 14:55:00 · 1246 阅读 · 2 评论 -
C++ 初学者指南 第五篇(4)
必备技能5.4:使用return语句 在前面的示例中,函数在遇到函数体结束的右括号时才会返回到调用该函数的地方。对于大多数的函数来说,这种方式是可以接受的。但并不是所有的函数都是这样的。通常,我们需要精确地控制在什么时候函数以何种方式来返回到调用的地方。为此,我们需要使用return语句。 return 语句有两种形式:一种是返回一个值;另外一种则什么都不返回。我们将从什么翻译 2010-05-28 17:03:00 · 1087 阅读 · 3 评论 -
C++ 初学者指南 第五篇(5)
必备技能5.5:在表达式中使用函数 在前面的示例中,box()函数的返回值被赋值给了一个变量,然后通过使用cout语句输出了变量的值。这样做虽然是正确的,但是我们可以在cout语句中直接使用函数的返回值来重写这个程序,这样程序的效率会更高。例如,前面程序中的main()函数可以按照下面的方式被重写:int main(){ //直接使用box()函数的返回值翻译 2010-05-28 22:30:00 · 964 阅读 · 2 评论 -
C++初学者指南 第十篇(5)
工程10-1 扩展Vehicle类在该工程中,我们针对第八章中的Vehicle类创建一个子类。回忆一下,Vechile类封装了汽车的信息,包括载客人数,邮箱容量以及每加仑油能跑的里程数。我们可以以Vechile类作为基础来创建更多更具体的类。例如,卡车就是一种Vechile。卡车的一个重要属性就是它的载重量。因此我们可以采用集成Vehicle类的方式来创建Truck类,只需要增加一翻译 2010-10-19 16:41:00 · 1091 阅读 · 0 评论 -
C++初学者指南 第十篇(7)
必备技能10.6:继承多个基类在C++中,一个派生类是可以继承两个或者多个基类的。如下的程序中,D就继承了B1和B2两个类。//演示继承多个基类#include using namespace std; class B1{protected: int x;public: void showx() { cout << x << "\n翻译 2010-10-19 16:47:00 · 663 阅读 · 0 评论 -
C++初学者指南 第十篇(4)
必备技能10.4:调用基类的构造函数当基类中定义了构造函数的时候,派生类必须显式地调用该构造函数来对对象的基类部分进行初始化。派生类通过使用扩展的派生类构造函数的声明方法来调用基类的构造函数。这种扩展的形式如下:派生类的构造函数(参数列表): 基类的构造函数(参数列表);{ //派生类构造函数体}其中,基类的构造函数就是派生类继承的基类的名称。注意,在上面的形式中翻译 2010-10-15 11:07:00 · 1027 阅读 · 0 评论 -
C++初学者指南 第九篇(8)
必备技能9.8:this关键字在我们学习运算符重载之前,有必要先来讨论一下C++中的另外一个关键字:this。当每次调用成员函数的时候,会自动地传入一个指针,叫做this指针。该指针指向调用该成员函数的对象。正如我们在前面学习到的那样,成员函数是可以直接访问类的私有数据的。例如下面的程序:class Test{ int i; void f() {翻译 2010-09-23 17:47:00 · 737 阅读 · 0 评论 -
C++ 初学者指南 第八章(5)
必备技能8.4:构造函数和析构函数在前面的例子中,我们可以看到Vechile类的对象的实例变量必须通过如下的代码段来手工地进行初始化:minivan.passengers = 7;minivan.fuelcap = 16;minivan.mpg = 21;在专业的C++代码中,这样的方式是不会被用到的。因为这样除了容易出错之外还可能造成忘记了给某个成员变量进行初始化。其实有一个翻译 2010-08-21 11:43:00 · 841 阅读 · 0 评论 -
C++ 初学者指南 第八篇(3)
必备技能8.3:为类增加成员函数到目前为止,Vehicle类中只包含有数据,而没有函数。尽管只含有数据的类是完全可以使用的,但是但多数的类都是含有成员函数的。通常来说,成员函数都是用来处理类中定义的数据的,绝大多数情况下,也对外提供了访问这些数据的接口。所以,我们程序的其它部分都是通过类的成员函数来和类交互的。我们将通过为Vehcile类增加一个成员函数来学习类成员函数的使用方法。回忆一下翻译 2010-08-01 21:23:00 · 970 阅读 · 0 评论 -
C++ 初学者指南 第六篇(2)
必备技能6.2:C++中参数的传递方式 缺省情况下,C++使用的是传值的方式。这就意味着函数中的代码对形参值的改变不会影响调用时传入的实参的值。在本书中,到目前为止的所有程序都是传值的方式传递参数的。例如,我们可以看一下下面程序中的函数reciprocal():// 传值的方式中,对形参值的改变不会影响实参的值#include using namespace std;double翻译 2010-06-06 21:31:00 · 1204 阅读 · 2 评论 -
C++ 初学者指南 第七篇(8)
必备技能7.8 移位运算符 移位运算符>>和变量 >> 移动的位数左移运算符的通用形式如下:变量 其中的移动的位数表示的是需要向右或者向左移动的比特位的次数。每进行一次左移,就会把变量的所有比特位向左边移动一个比特位,并在最右边的比特位上填充0。每进行一次右移,就会把变量的所有比特位向右边移动一个比特位,并在最左边的比特位上填充0。然而,如果变量是一个有符号的整型数,并且是个负翻译 2010-06-27 16:24:00 · 885 阅读 · 0 评论 -
C++ 初学者指南 第七篇(9)
必备技能7.9:?运算符 C++中提供了一个非常令人兴奋的运算符,它就是?运算符。这个运算符通常用来替换如下格式的if-else语句:if ( 条件 ) 变量 = 表达式1; else 变量 = 表达式2;这里,变量的取值取决于if中的条件表达式的值。 这里的?运算符被称为是三目运算符,这是因为它需要三个运算数。它的通用形式如下:表达式1 ?表达式2 : 表达式3;翻译 2010-07-07 10:30:00 · 783 阅读 · 0 评论 -
C++初学者指南 第七篇(10)
必备技能7.10:逗号运算符 另外一个很有意思的运算符就是逗号运算符。我们在for循环中已经看到过几个关于逗号运算符的例子了。当时我们是使用逗号运算符来进行多个变量的初始化或者多个自增语句的。然而,逗号运算符是可以作为任何表达式的一部分的。它用于把多个表达连接起来。用逗号进行间隔的表达式列表的值就是其中最右边的表达式的值,其它表达式的值都会被丢弃。这就意味着最右边的表达式的值就是整个逗号翻译 2010-07-07 11:04:00 · 941 阅读 · 0 评论 -
C++初学者指南 第七篇(12)
必备技能7.12:使用sizeof 在实际编程中,有时需要知道某种类型数据占用的空间的大小。由于C++中内置数据类型的大小是与计算环境相关的,所以我们不可能提前知道所有情况下变量占用空间的大小。为了解决这个问题,C++提供了一个编译时的运算符sizeof。它的通用形式如下:sizeof(类型);sizeof 变量 ; 第一种形式返回的是指定数据类型占用空间的大小;第二种翻译 2010-07-09 12:55:00 · 707 阅读 · 0 评论 -
C++初学者指南 第七篇(13)
小结 表格7-2列出了C++中运算符的优先级,顺序为从高到低。大多数运算符的结合性都是从左至右的。单目运算符,赋值运算符和?运算符的结合性是从右向左的。下面的表格中列出的部分运算符是我们目前还没有学习到的,其中许多都是在面向对象的编程中用到的。优先级运算符最高优先级() 组运算[] 访问数组-> 通过指针访问成员翻译 2010-07-12 09:33:00 · 738 阅读 · 0 评论 -
C++初学者指南 第八篇(7)
必备技能8.6:内联函数在我们继续探讨类之前,有必要先对一个很重要的题外话进行讨论一下。那就是内联函数。尽管它并不属于面向对象的编程范畴,但它是C++中一个非常有用的特性,也是经常会在类的定义中被用到的一个特性。一个内联函数会在引用它的地方被展开,而不是像普通函数那样是被调用。有两种方式可以创建一个内联函数。其一就是使用inline修饰符。例如,想要创建一个名称为f,返回值为一个int类型翻译 2010-09-11 11:45:00 · 764 阅读 · 1 评论 -
C++ 初学者指南 第八章(6)
必备技能8.5:带有参数的构造函数在前面的例子中,我们用到的是没有参数的构造函数。在某些情况下,这样做是可以的。但是大多数情况下我们都需要带有一个或者多个参数的构造函数。为类的构造函数增加参数和为普通的函数增加参数的方式是一样的:只需要在函数名称后面的括号中声明这些参数即可。例如,下面就是类MyClass的一个带有参数的构造函数:MyClass::MyClass(int i ){翻译 2010-09-01 22:31:00 · 915 阅读 · 1 评论 -
C++ 初学者指南 第一篇(10)
必备技能 1.9 : 使用代码块 C++中一个基本的元素就是代码块。一个代码块由两个或者多个语句组成,由一对花括号括起来的。代码块可以作为一个逻辑单元出现在任何单条语句可以出现的地方。例如,代码块可以被使用在if语句或者for循环中:if ( w < h ){ v = w * h; w = 0;}这里,如果w小于h,则代码块中的两条语句都会被执行。因此,代码块中的翻译 2009-11-18 12:09:00 · 1853 阅读 · 2 评论 -
C++ 初学者指南 第一篇(4)
必备技能1.4:第一个简单的程序 现在我们开始编程了。我们通过编译和运行下面的一个简短的C++程序开始: /* 这是一个简单的C++程序. 文件名称为 Sample.cpp. */ #include using namespace std; // C++程序都是从main()函数开始的 int main() { cout << "C++ i翻译 2009-11-16 21:29:00 · 2319 阅读 · 2 评论 -
C++ 初学者指南 第一篇(5)
必备技能1.5:第二个简单的程序 变量是程序最基本的构成元素。一个变量就是一个被命名的,可以被赋值的内存位置。进一步来说,变量的取值在程序的执行过程中是可以改变的。也就是说变量的内容是可变的,而不是固定的。下面的程序创建了一个变量叫做length,赋值7,并在显示器上输出信息“The length is 7”。//using a variable.#include using n翻译 2009-11-16 21:31:00 · 1591 阅读 · 1 评论 -
C++ 初学者指南 第一篇(11)
项目 1-2 生成一张从英尺到米的转换表 这个项目将显示一张从英尺到米的转换表,其中用到了for循环,if语句和代码块。表格的起始为一英尺,终止为100英尺。每输出10英尺的转换表后,输出一个空行,这个是通过使用变量counter来实现的。边玲counter是用来表示行数的,请注意它的用法。步骤:1.创建一个新的文件,命名为FtoMTable.cpp。2.文件中键入下面的程序翻译 2009-11-19 21:08:00 · 2219 阅读 · 4 评论 -
C++ 初学者指南 第一篇(6)
必备技能1.6:使用运算符 和大多数其它的语言一样,C++支持全部的算术运算符,以便能够处理程序中的数字。这其中就包括: + 加法 - 加法 * 乘法 / 除法 在C++中,这些运算符的用法和代数中的用法是一样的。 下面的程序使用*运算符来根据长度和宽度计算矩形的面积。//使用运算符#include using nam翻译 2009-11-16 21:33:00 · 1473 阅读 · 2 评论 -
C++初学者指南 第五篇(6)
必备技能 5.6:局部作用域 局部作用域是由块创建的。(回忆前面讲过的块是由一对花括号括起来的)。因此,每次我们创建代码块的时候也就创建了一个新的作用域。我们可以在任何代码块中声明变量。在代码块中声明的变量我们称之为局部变量。 局部变量只能被和它在位于同一个代码块中的代码所访问。换句话说,局部变量在其代码块之外是不会被感知的。因此,代码块之外的语句是不能访问代码块之内的对象的。翻译 2010-05-28 22:42:00 · 1016 阅读 · 3 评论