第2章 开始学习C++
1. 进入C++
1.1 main()函数
//main()函数的基本结构
int main() //函数头,描述函数与调用它的函数之间的接口
{ //花括号范围函数体,描述函数行为
statements //语句
return 0; //返回语句,结束函数
}
-
在C++中,让括号空着等同于void。
-
如果编译器在到达main()函数末尾还没有遇到返回语句,则隐含return 0,但这只适用于main()函数
-
C++必须包含一个main()的函数
1.2 C++注释
C++注释是以**//开头的。C++还能识别C注释,C注释在/和/**之间。所以C++可以使用这两种注释。
1.3 C++预处理器和iostream文件
#include <iostream> //使用#include编译指令将iostream文件添加到程序中,在源代码编译之前,替换或者添加文本
添加iostream文件是为了程序与外部世界之间的通信,文件涉及输入/输出方案中多个定义。
1.4 头文件名
像iostream文件叫作包含文件,也叫作头文件。C++头文件没有扩展名,有些C头文件转换为C++头文件被重新命名,去掉了.h,并在名称前添加c。没有.h的头文件可以包含名称空间。
1.5 名称空间
名称空间支持是一项C++特性,旨在编写大型程序以及将多个厂商现有的代码组合起来的程序时更容易,还有助于组织程序。
using namespace std; //using编译指令使得std名称空间中所有名称可用
using std::cout; //使得cout可用,令std中指定单个名称可用
using std::cin; //cin可用
using std::endl; //endl可用
//或者直接在程序中使用std::cout、std::cin、std::endl
1.6 使用cout进行C++输出
cout是一个预定义对象,知道如何显示字符串、数字和单个字符等。使用对象只需知道它的接口,不需要知道它的内部情况。
cout对象表示输出流,其属性在iostream中定义的,cout对象包含一个插入运算符(<<),它将右侧信息插入到流中。
<<在C语言表示为按位左移运算符,这里运用到了C++运算符重载的特点,可以使同一个符号有多种含义,而编译器根据上下文确定其含义。
控制符endl在iostream中定义,且位于名称空间中,其概念是重起一行,控制符意味着对cout有特殊含义的特殊符号。
换行符\n也是重起一行,它是一种“转义序列”的按键组合,可以直接使用。
1.7 C++源代码的格式化
空格、制表符、回车统称为空白。
在C++中,回车的作用就和空格或制表符相同,但是不要把空白放在标识符中间,也不要放在字符串中间。
C++源代码风格:
- 每条语句占一行
- 每个函数都有一个开始花括号和一个结束花括号,分别占一行
- 函数中语句都相对于花括号进行缩进
- 函数名称相关的圆括号周围没有空白。为了区分一些带有圆括号的内置结构
2. C++语句
声明语句:指出存储的类型并提供位置标签。例如:int x;
赋值语句:将值赋给存储单元。例如:x = 1; 可以连续的使用赋值运算符=,例如:x = y = z = 1;
消息语句:将消息发送给对象,激发某种行为。
函数调用:执行函数。
函数原型:声明函数的返回类型、函数接受的参数数量和类型。也就是函数的接口。
返回语句:将一个值从被调用函数返回到调用函数。
在C++中,声明语句可以出现在程序中任意位置,只要在使用它之前声明就行。
cout可用于数字和字符串,利用插入运算符<<根据其后数据类型调整相应的行为,用到了C++运算符重载的特性。
3. 其他C++语句
cin也是一个智能对象,可以将输入的一系列字符转换成接收信息的变量能够接受的形式。
另外,可以通过cout进行拼接。例如:cout << "yang kai " << “ha ha” << endl;
类简介
类是用户定义的一种数据类型。类中包括它能够表示的信息和可对数据执行哪些操作。
类之于对象就像类型之于变量,类定义描述数据格式及其用法,而对象则是根据数据格式规范创建出来的实体。
有些用户直接使用类,都来自于相应的类库。
4. 函数
函数用于创建C++程序的模块。函数分为两种:有返回值、没有返回值
4.1 有返回值的函数
返回值函数返回一个值,可以赋给变量或在其他表达式中使用。
函数原型描述函数的接口,应在使用函数前包含它的原型。
4.2 函数变体
关键字void放在形参处代表不接受参数,放在返回类型处代表不返回值。
4.3 用户定义的函数
自定义函数应包含函数头和函数体。return用来返回有返回值的函数。
main()函数返回值返回给操作系统,返回为0代表程序运行成功,非0代表存在问题。