2.1.1 main函数
main函数被启动代码调用,而启动代码是由编译器添加到程序中的,是程序和操作系统之间的桥梁。
通常C++中必须包含一个名为main的函数,存在一些例外情况,比如:
动态库、
用于专用环境的程序,如机器人中的控制芯片、
有些编程环境提供一个框架程序,改程序调用一些非标准函数,如t_main。在这种情况下,有一个隐藏的main,它调用_tmain
2.1.3 预处理
有些C++使用翻译器将C++程序转换为C程序,此处暂不讨论
处理以#开头的编译指令
#include <iostream> 头文件展开:
#include指令单子iostream文件的内容随源代码文件的内容被一起发送到编译器。实际上,iostream的内容将取代程序中的代码行#include <iostream>。原始文件没有被修改,而是将源代码和iostream组合成一个复合文件,编译的下一阶段将使用该文件
2.1.4 头文件名
C++的头文件没有扩展名(.h),有些C头文件被转换为C++头文件,这些文件被重新命名,例如math.h->cmath
去掉.h不只是形式上的变化,没有.h的头文件也可以包含命名空间
2.1.5 命名空间
#using namespace std;
为了防止函数名重复
推荐using std::cout; 而不是using namespace std;
2.1.6 cout
cout << “xxx”;
<< 表示把这个字符串发送给cout;该符号指出了信息流动的路径
从概念上看,输出是一个流,即从程序流出的一系列字符。cout对象表示这种流,其属性是在iostream文件中定义的。cout的对象属性包括一个插入运算符(<<),他可以将其右侧的信息插入到流中
编译器通过上下文来确定重载的含义
endl是一个特殊的C++符号,表示重启一行。诸如endl等对于cout来说有特殊含义的特殊符号被称为控制符
与换行符的一个差别:endl确保程序继续运行前刷新输出(打屏),而"\n"不能提供这样的保证,这意味着在有些系统中,有事可能在您输入信息后才会出现提示
2.1.7
每条语句站一行
每个函数都有一个开始花括号和一个结束花括号,这两个花括号各占一行
函数中语句都相对于进行缩进
与函数名称相关的圆括号周围没有空白(区分函数和一些也使用圆括号的C++内置结构如循环)
2.2 C++语句
2.2.1 声明和变量
声明语句指出存储类型并提供位置标签
为什么变量必须声明:
有些语言在使用新名称时创建新的变量,而不显式地进行声明。会导致,如果拼写错了变量名,将在不知情的情况下创建一个新的变量
定义:定义声明,分配内存
引用声明:命令计算机使用在其他地方定义的变量
提示:对于声明变量C++的做法是尽可能在首次使用变量前声明它
2.2.2赋值
连续使用赋值运算符
a=b=c=88;
赋值将从右向左进行
2.2.3cout
<<:插入运算符,运算符重载
如果喜欢printf()提供的细致的控制功能,可以使用更高级的cout来获得相同的效果(参见第17章)
2.3.3类简介
类时用户定义的异种数据类型
类之于对象就像类型之于变量
注意:类描述了一种数据类型的全部属性(包括可使用它执行的操作),对象是根据这些描述创建的实体
就像函数可以来自函数女库一样,类也可以来自类库,C++当前之所以如此有吸引力,很大程度上是又由于存在大量支持UNIX、Macintosh和Windows编程的类库
要对对象执行操作,需要给对象发送一条消息,发送消息两种方式
1、类方法(函数调用)
2、重新定义运算符(cout、cin)
2.4函数
函数原型之于函数就像变量声明之于变量——指出设计的类型,如下:
double sqrt(double);
如果省略分号,编译器将把这行解释为一个函数头,并要求接着提供该函数的函数体
main函数的返回值通常叫做退出值,一般约定0表示成功,非0表示意味着存在问题
C++关键字不能用作变量名
2.4.5命名空间
using namespace std
放在函数外,文件中所有函数可使用std中的所有元素
放在函数中,所在函数可使用std中的所有元素
using std::cout; ,使用指定元素
不用using命令,在需要使用命名空间的元素时,加std::前缀
2.5总结
程序从main开始执行
声明语句:定义变量和名称
赋值语句:使用赋值预算符给变量赋值
消息语句:将消息发送给对象,激发某种行动
函数调用:执行函数。被调用函数执行完毕后,程序返回到函数调用语句后面的语句
函数原型:声明函数的返回类型、函数接受的参数数量和类型
返回语句:将一个值从被调用的函数哪里返回到调用的函数中
类时用户定义的数据类型规范,他详细描述了如何表示信息以及可对数据执行的操作。对象是根据类规范创建的实体,就像见到变量是根据实际类型描述创建的实体一样
C++提供了两个用于处理输入输出的对象(cin和cout),它是istream和ostream类的实例,头文件:iostream。为ostream类定义的插入运算符(<<)使得数据插入到输出流成为可能;同理>>。cin和cout能根据程序上下文字段转换数据类型
C++可以使用大量C的库函数