P14
2.1
C++对大小写敏感。
对于有些程序,要让窗口一直打开,直到您按任何键,添加cin.get();
int main(), 在C++中,让括号空着与在括号中使用void等效(在C中,让括号空着意味着对是否接受参数保持沉默)。
2.1.3 C++预处理器和iostream文件
如果程序要使用C++输入或输出工具,请提供这样两行代码:
#include <iostream>
using namespace std;
该编译指令导致预处理器将iostream文件的内容添加到程序中,io指的是输入和输出,将源代码文件和iostream组合成一个复合文件。
2.1.4 头文件名
像iostream这样的文件叫做包含文件(include file),也叫头文件(header file)。
不同于C的头文件名.h,C++的头文件没有扩展名,有些C头文件被转换为C++头文件,这些文件被重新命名,去掉了拓展名h,并在文件名称前面加上前缀c(例如:C++版本的math.h为cmath)
2.1.5 名称空间
如果使用iostream,而不是iostream.h,则应使用下面的名称空间编译指令来使iostream中的定义对程序可用:using namespace std;
这叫做using编译指令。名称空间让厂商能够将其产品封装在一个叫做名称空间的单元中,这样就可以用名称空间的名称来指出想使用哪个厂商的产品。这样就可以使用名称空间来区分不同的版本了。
按照这种方式,类、函数和变量比那是C++的编译器的标准组件,他们都被放置在名称空间std中。仅当头文件没有扩展名.h时,情况才是如此。这意味着iostream中定义的用于输出的cout变量实际上是std::cout,,而dnls实际上是std::endl。所以因为太麻烦,using编译指令应运而生。
using编译指令使得std名称空间中的所有名称都可用,这是一种偷懒的做法,在大型项目中是一个潜在的问题。更好的方法是,只使所需的名称可用,可以通过使用using声明来实现:
using std::cout;
using std::endl;
using std::cin;
用这些编译指令之后,便可以使用cin和cout,而不必加上std::
2.1.6 使用cout 进行C++输出
C++中,双引号括起的一系列字符叫做字符串,<<符号指出了信息流动的路径。cout是一个与定义对象,知道如何显示字符串数字和单个字符等。
输出是一个流,与其说程序显示了一条消息,不如说他将一个字符串插入到了输出流中。
endl是一个特殊的C++符号,在输出流中插入endl将导致屏幕光标移到下一行开头。(控制符)
与‘\n'的区别是,endl确保程序继续运行前刷新输出(将其立刻显示在屏幕上);而使用'\n'不能提供这样的保证,这意味着在有些系统中,有时可能在您输入信息后才会出现提示。
2.1.7 C++源代码的格式化
C++中,回车的作用就和空格或者制表符相同,既可以把一条语句放在几行上,也可以把几条语句放在同一行上。
空格、制表符和回车统称为空白。
2.2.1 声明语句和变量
int carrots;
这条语句提供了两项信息:需要的内存以及该内存单元的名称。
C++通常的做法是,在首次使用变量前声明它。这样就不用在程序中到处查找。
2.3.3 类简介
类是用户定义的一种数据类型。类定义描述的是数据格式及其用法。而对象则是根据数据格式规范创建的实体。
类描述了一种数据类型的全部属性(包括可以使用它执行的操作),对象是根据这些描述创建的实体。
P23
2.4 函数
C和C++将库函数这两项特性(原型和定义)分开了。库文件中包含了函数的编译代码,而头文件中则包含了原型。
有些语言中,有返回值的函数被称为函数(function),没有返回值的函数被称为(procedure)或子程序(subroutine)。
C++不允许将函数定义嵌套在另一个函数中。
main函数的0,究竟返回到哪里了呢?可以将计算机操作系统看作调用程序,main()的返回值并不是返回给程序的其他部分,而是返回给操作系统。通常的约定是,退出值为0则意味着程序运行成功,非零则存在问题。