第一章:开始
笔记
1. main函数的返回类型必须为int,即整数类型。
2. 访问main函数(程序)返回值的方法依赖于系统。
在UNIX系统中,通过命令:
$ echo $?
在Windows系统中,通过命令:
$ echo %ERRORLEVEL%
3. 编译器通常都包含一些选项,能对有问题的程序结构发出警告。打开这些选项通常是一个好习惯。
GNU编译器中使用-Wall选项,在微软编译器中则使用/W4。
4. 流是一个字符序列,是从IO设备读出或写入IO设备的,流表达随时间的推移,字符是顺序生成或消耗的。
5. 缓冲刷新操作可以保证程序的所有输出都真正写入输出流中,而不是仅停留在内存(缓冲区)中等待写入流。
6. 标注库定义了不同版本的输入输出运算符,来处理这些不同类型的运算对象。
例如:
std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << std::endl;
7. 注释界定符(/* */)不能嵌套。
8. 当遇到文件结束符(end-of-file),或遇到一个无效输入时,istream对象的状态会变为无效。
linux下,键入回车键,仍可以继续读入值。
9. 在Windows系统中,输入文件结束符的方法是Ctrl+Z,然后按Enter或Return。
在UNIX、Max OS系统中,文件结束符输入是用Ctrl+D。
10. c++程序中的每个名字都要先声明后使用。
11. 按照错误信息逐个修改错误,并且没修改一个错误后就立即重新编译代码,是一种好习惯。
12. 培养良好的代码格式风格,并且保持自己的风格。
13. 一般而言,类的作者决定了类类型对象上可以使用的所有操作。
14. 当测试程序时,可以使用文件重定向,可以避免反复敲入的测试数据,例如(在bash下):
$ addItems < infile > outfile
练习题
练习1.23代码:
#include <iostream> #include <Sales_item.h> int main() { Sales_item currVal, val; if (std::cin >> currVal) { int cnt = 1; while (std::cin >> val) { if (val.sibn() == currVal.isbn()) ++cnt; else { std::cout << currVal << " occurs " << cnt << " times " << std::endl; currVal = val; cnt = 1; } } std::cout << currVal << " occurs " << cnt << " times " << std::endl; } return 0; }
术语
内置类型(built-in)、花括号(curly brace)、集成开发环境(Integrated Developed Environment, IDE)、
标准库(standard library)、头文件(header)、操纵符(manipulator):如endl、 命名空间(namespace):如std、
作用域运算符(::):如std::cout、 注释(comments)、语法错误(syntax error)、类型错误(type error)、
声明错误(declaration error)、成员函数(member function)、方法(method)。
2016-10-23 23:55:17