07 2011 档案
摘要:更多来自:http://imcc.blogbus.com 第6章 Ÿ 当C++爱上面向对象 很多第一次进入C++世界的人都会问:C++中的两个加号到底是什么意思啊? 我们知道,C++语言是从C语言发展起来的,C++比C多出的两个加号,实际上是C++的自增操作符,表示C++语言是在C语言的基础上添加了新的内容。如果说其中一个加号代表C++在C的基础上增加了模板、异常处理等现代程序设计语言的新特性,...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 5.4.1 函数声明的设计规则 函数的声明,也称为函数的接口,它是函数跟外界打交道的通道。它就像函数箱子上的标签一样,可通过该标签了解箱子中封装的是什么功能,需要什么样的输入数据,以及能够返回什么样的结果。大量实践表明,一个函数是否好用,往往由其接口设计的好坏决定。在设计实现函数的时候,不仅要让函数的功能正确,还要让函数的接口清晰明了,有...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 5.1.2 函数调用机制 在学习编写函数之前,我们首先要了解函数的调用机制,学会如何调用一个已经存在的函数。世界上已经有很多函数,我们可以直接调用这些函数来完成日常任务。世界上已经有很多轮子,我们没有必要再去发明更多同样的轮子,只需要用好它们就可以了。在实际的开发中,可供调用的现有函数主要有编译器提供的库函数、Windows API及第三方...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 5.1.1 将程序装到箱子中:函数的声明和定义 提问:把大象装到冰箱中需要几步? 回答:需要三步。第一,打开冰箱;第二,把大象放进冰箱;第三,关上冰箱。 提问:那么,把一个程序放进箱子需要几步? 回答:需要两步。第一,声明一个函数;第二,定义这个函数。 没错,把一个函数放进箱子比把大象放进冰箱还要简单。当分析一段长的程序代码时,往往会发现...
阅读全文
摘要:更多来自:http://imcc.blogbus.com Ÿ 把程序装进箱子:用函数封装程序功能 在完成豪华的工资统计程序之后,我们信心倍增,开始向C++世界的更深远处探索。 现在,可以使用各种数据类型和程序流程控制结构来编写完整的程序了。但是,随着要处理的问题越来越复杂,程序的代码也越来越复杂,主函数也越来越长了。这就像我们将所有东西都堆放到一个仓库中,随着东西越来越多,仓库慢慢就被各种东西堆...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 4.3.4 对循环进行控制:break与continue // 大款的收支统计程序 int nTotal = 0; int nInput = 0; do { cout<< "请输入你的收入或支出:"; cin>>nInput; if( 1000< nInput ) // 毛毛雨啊,就不用统计了 continue; nTotal += nI...
阅读全文
摘要:The world is built on C++. ——Herb Sutter 看得有趣、学得轻松 看图也能学C++?! 没错,看图也能学C++! 这本迷你书是《我的第一本C++书》的迷你版,它抽取了《我的第一本C++书》中的全部的精美插图,并配上相应的解释说明。它以图文并茂的生动形式,向你讲解那些所谓的高深的C++知识,让你对那些抽象的C++知识有一个更加形象的理解,向你展示这个美丽而神秘的...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 3. 更改语句 在各种循环结构中,总是有一个循环控制变量用来构成循环是否继续执行的条件。例如前面例子中的nInout就是一个循环控制变量,可以用它的值来判断是否需要进行下一次的循环。既然是表示循环的条件,就需要在循环中对这个变量进行修改,以反映循环的执行情况,根据执行情况决定循环是否继续进行。例如将用户输入的值赋值给nInput,就是对循...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 4.3.2 do…while循环 在以上while循环的例子中,我们注意到,nInput需要给定初始值才可以完成整个循环。很多情况下,while循环的条件没有合适的初始值,那么有没有办法可以改进上面的设计呢?有,C++提供了while循环的孪生兄弟—— do…while循环来解决这个问题。在C++中,do…while循环控制语句的语法格式...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 4.2.2 并列的选择:switch语句 其中,条件表达式就是要进行判断的条件。switch语句首先计算条件表达式的值,这个表达式的值只能是整型或字符型。完成这个表达式的计算之后,程序开始在各个“case”分支中从上到下逐个匹配,查找哪个常量值和这个表达式的值相等。如果找到相等的常量表达式,则以此为入口开始往下顺序执行case分支中的语句,...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 3.9.3 指针的赋值和使用 在得到一个指针变量之后,指针变量的值还是一个随机值。这个值可能是内存中无关紧要的数据,也可能是重要的数据或者程序代码,如果直接使用是很危险的,所以在使用指针之前,必须对其进行赋值,将其指向某个有意义的数据或代码。对指针变量进行赋值的语法格式如下: 指针变量 = 内存地址; 可以看到,对指针变量的赋值,实际上就...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 4.2.2 并列的选择:switch语句 其中,条件表达式就是要进行判断的条件。switch语句首先计算条件表达式的值,这个表达式的值只能是整型或字符型。完成这个表达式的计算之后,程序开始在各个“case”分支中从上到下逐个匹配,查找哪个常量值和这个表达式的值相等。如果找到相等的常量表达式,则以此为入口开始往下顺序执行case分支中的语句...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 3.9.1 指针的本质:表示内存地址的数据类型 在典型的32位平台上,可以把内存空间看成是由很多个连续的小房间构成的,每个房间就是一个小存储单元,大小是1个字节,房间中住着数据。有的数据比较小,比如一个char类型的字符,它只需要一个房间就够了。而有的数据比较大,就需要占用好几个房间,比如一个int类型的整数,其大小是4个字节,需要4个房...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 3.8.1 打包复杂:结构体的定义 其中,struct关键字表示要创建一个结构体,结构体名就是要创建的新结构体的名字,通常使用结构体描述的事物来作为结构体的名字。在结构体的内部,我们分别使用多个不同数据类型的变量来表示复杂事物的各个属性。因为这些变量共同组成了结构体,所以这些变量称为结构体的成员变量。有了结构体,就可以在结构体中定义多个不...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 3.6.1 排排坐,吃果果:数组的声明与初始化 我们常常遇到这样的数据:数量很大;有相同的数据类型;有相同的处理方式。例如,一个公司所有员工的工资、一个学校所有学生的成绩、一个地区一年的气温,等等。为了描述这种量大且相似的数据,C++提供了数组这种构造型数据类型。 如果把整个内存看成是一座宾馆,那么可以把数组看成是某一层楼上的一个个连续的...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 第3章 Ÿ C++世界众生相 在听过了HelloWorld.exe的自我介绍,完成了与C++的第一次亲密接触后,大家是不是都急不可待地想要一试身手,开始编写C++程序了呢? 我们知道,程序首先是使用数据来描述现实世界的。当我们尝试使用数据来描述现实世界时,马上就遇到了一个问题:C++世界中的数据这么多,我们一个都不认识,该从哪里开始啊?别...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 2.2.3 读写文件 在这段程序中,我们首先创建了一个输入文件流ifstream的对象fin,并利用它的构造函数将其连接到一个文本文件Date.txt。所谓构造函数,就是这个对象创建的时候所执行的函数。这里,我们使用“Date.txt”作为参数来调用这个构造函数,实际上就是使用这个文件创建fin对象。除此之外,我们还可以使用fin所提供的...
阅读全文
摘要:更多来自:http://imcc.blogbus.com 2.1.6 我的人生目的:描述数据与处理数据 每个人都会问自己人生的目的是什么?我的人生目的是什么?人们编写程序的目的,是为了用程序解决现实世界中的问题。人们观察发现,这些问题都是以数据作为输入,然后对这些数据进行处理,最后得到问题的结论。所以,我人生的目的是描述数据并处理数据,最终解决现实世界的问题,如图2-8所示。 图2-8 我的人生...
阅读全文
摘要:2.1.5 我的一生是这样度过的:C++程序的执行过程 进入_tmain()函数之前的事情我做不了主,但是进入_tmain函数后,就是我的地盘了。我会按照你在源代码中给我制定的人生规划,一条语句一条语句地往下执行,一步一步地往下走。你一定还记得,我的源代码是这样的: int _tmain(int argc, _TCHAR* argv[]) { // 在屏幕上显示“Hello World!” cou...
阅读全文
摘要:《C++ Prmer》+《我的第一本C++书》=一整套完备的C++参考书 首先,向经典致敬! 一位《我的第一本C++书》的读者向我反馈说,为了学习C++,他最开始买了一本经典的《C++ Prmer》,可是硬着头皮看了不到四分之一,就再也看不下去了。只好将其放在书架上,束之高阁了。后来在书店看到《我的第一本C++书》,翻看了几页觉得不错就买了,等到后来仔细看了之后,觉得讲得不够深入细致,才突然想起那...
阅读全文
摘要:更多来自 http://imcc.blogbus.com 我的父亲母亲:编译器和链接器 虽然我是Visual Studio创建的,但是实际上,我的老爸和老妈是Visual Studio集成的编译器和链接器。此外,Visual Studio提供的主要是编辑功能,让你更方便地编辑我的源代码。 我老爸编译器的工作是将高级语言C++翻译为低级语言(机器语言)。 我的源文件是使用C++这种高级程序设计语言...
阅读全文
摘要:C++也山寨啊 全部壁纸下载来自 http://imcc.blogbus.com
阅读全文
摘要:炎炎夏日,为大家奉献两套精美的C++壁纸,希望能够给你带去一丝清凉 夏日清凉版: 全部壁纸下载来自:http://imcc.blogbus.com/tag/C++0xFAQ/
阅读全文
摘要:我的五官和四肢:C++程序=预编译指令+程序代码+注释 麻雀虽小,五脏俱全。大家别看我个头小,只有短短的几行代码,实现的功能也很简单,但是我同样拥有健全C++程序的五官和四肢:预编译指令、程序代码和注释,如图2-5所示。大多数情况下,这三个基本部分都被放在一个扩展名为“cpp”的文本文件中,这个文件被称为C++ 源文件。源文件记录了我的五官和四肢、规划了我的人生。而你作为源文件的编写者,就是我的设...
阅读全文
摘要:来自《我的第一本C++书》 会说话,就会编程:C++是如此简单的编程语言 C++是一门程序设计语言,有着语言的基本特征,我们可以像学习普通语言一样来学习C++。 语言,是用来描述和表达现实世界的,编程语言也不例外。为了描述现实世界的事物,我们需要一些名词,在C++中就是数据类型和用数据类型表达的数据。而为了表达事物之间的关系,将各个事物连缀成句子,在C++中就是表达式。将多个句子通过一定的逻辑关系...
阅读全文
摘要:C++语言的发展过程,不仅是一个特性不断增加,内容不断丰富的过程,更是一个在应用领域不断攻城略地的过程。在其40余年的发展过程中,C++在多个应用领域都得到了广泛的应用和发展。无论是在最初的UNIX操作系统上,在Windows操作系统上,还是在最近兴起的嵌入式系统上,C++都占有一席之地(如图1-3所示)。 图1-3 C++世界三分天下
阅读全文
摘要:1.2.6 五岳剑派:C++世界的五大子语言 C++已经有40多年的发展历史了,在发展过程中,因为不同的应用领域,不同的开发思想而形成了不同的C++子语言。每个子语言各有所长,就像C++世界的五岳剑派,各自在自己的领域独领风骚,形成C++世界百花齐放的繁盛局面(如图1-2所示)。 图1-2 C++的五种子语言争奇斗艳
阅读全文
摘要:The world is built on C++. ——Herb Sutter the chair of the ISO C++ standards committee and chief native languages architect at Microsoft 看得有趣、学得轻松 看图学C++ 陈良乔 导读: 看图也能学C++?! 没错,看图也能学C++! 这本迷你书是《我的第一本C+...
阅读全文