1.1关于main函数
每个C++程序都包含一个或多个函数(function),其中一个必须命名为main。操作系统通过调用main来运行C++程序。
1 2 3 4 5 6 |
//main.cpp //下面是一个非常简单的main函数 int main() { return 0; } |
- 每个c++程序都包含一个或多个函数(function),其中一个必须命名为main。
- 一个函数的定义包含四部分:返回类型(return type)、函数名(function name)、形参列表(parameter list,允许为空)、函数体(function body)。
- main函数的返回类型必须为int,即整数类型。int类型是一种内置类型(built-in type)。
- 多数系统中,main的返回值被用来指示状态。返回值0表示成功,非0的返回值含义由系统定义,通常用来指出错误类型。
1.2编译、运行程序
- GNU编译器的编译命令:$ g++ -o main main.cpp ($是系统提示符)。
- GNU编译器的运行命令:$ ./main(”.”后跟一个反斜线指出该文件在当前目录中)。
- UNIX系统中通过如下命令获得返回状态:$ echo $?
- Windows系统中查看状态命令:$ echo %ERRORLEVEL%
1.3初识输入输出
- 标准库定义了4个IO对象:cin 标准输入,用来处理输入;cout 标准输出,用来处理输出;cerr 标准错误,用来输出警告和错误消息;clog 用来输出程序运行时的一般性信息。
1 2 3 4 5 6 7 8 9 10 11 |
//一个使用IO库的程序 #include <iostream> int main() { std::cout << "Enter two numbers: " << std::endl; int v1 = 0, v2 = 0; std::cin >> v1 >> v2; std::cout << "The sum of " << v1 << "and" << v2 << "is " << v1 + v2 << std::endl; return 0; } |
- endl,这是一个被称为操作符(manipulator)的特殊值。写入endl的效果是结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中。缓冲刷新操作可以保证到目前为止程序所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流。
- 前缀std::指出名字cout和endl是定义在名为std的命名空间(namespace)中的。命名空间可以帮助我们避免不经意的名字定义冲突,以及使用库中同名字导致的冲突。
1.4读取数量不定的输入数据
- 从键盘输入文件结束符:UNIX系统中,文件结束符输入是用Ctrl+D ; Windows系统中,文件结束符是用:Ctrl+Z。
1.5类简介
在C++中,我们通过定义一个类(class)来定义自己的数据结构。C++最初的一个设计焦点就是能定义使用上像内置类型一样自然的类类型(class type)。
- 包含标准库的头文件时,应该使用尖括号(<>)包围头文件名。对于不属于标准库的头文件,则用双引号(” “)包围。
1.6初识文件重定向
这种机制允许我们将标准输入和标准输出与命名文件关联起来:
$ addItem <infile >outfile
其中,addItem是已经编译好的可执行文件,上述命令会从一个名为infile的文件读取销售记录,并将结果写入到一个名为outfile的文件中,两个文件都位于当前目录中。
1.6初识成员函数
item1.isbn()
- 使用点运算符(.)来表达我们需要“名为item1的对象的isbn成员”。点运算符只能用于类类型的对象。
- 使用调用运算符(( ))来调用一个函数。
言简意赅