《C++Primer 第五版》——第一章 开始

1.1 编写一个简单程序

  1. 每个C++都包含一个或多个函数(function),其中一个必须命名为 main 。
  2. 操作系统通过调用 main 函数来运行C++程序。
  3. 一般函数 的定义包含:返回类型(return type)、函数名(function name)、()里的参数列表(parameter list)以及函数体(function body)
  4. 函数体:由 { } 与其中的语句块(block of statements)组成
  5. 内置类型: 指编程语言自身定义的类型
  6. 在C++中,大多数语句以分号(;)表示结束。而且在C++语句中的制表格、空格和回车是一样的,所以大多数语句可以不在同一行。
  7. 在大多数系统中,main 的返回值被用来指示状态。返回值0表明成功,非0值的含义由系统定义,通常被用来指出错误类型。
  8. 类型: 一种类型不仅定义了数据元素的内容,还定义了该类数据上可以执行的操作。

1.1.1编译、运行程序

  1. 集成开发环境(Integrated Development Environment , IDE):将代码编辑器、编译器、调试器和图形用户界面等工具包装在一起。
  2. 源文件(source file):存储程序源码的文件
  3. 对于源文件,不同的编译器 采用 不同的后缀命名约定,比如 .cc、.cxx、.cpp、.cp以及.C等。用于告诉系统这是一个C++的源文件。
  4. Windows与UNIX下的命令行编译:
系统编译器可执行文件后缀命令行编译指令命令行运行指令获取返回值
Windows微软VS.execl /EHsc prog1.cppprog1echo %ERRORLEVEL%
UNIXGUN.outg++ -o prog1 prog1.outprog1.out,指出文件在当前目录./a.outecho $?
  1. 其中的prog1是可执行文件的文件名。
  2. 如果UNIX编译指令漏了 -o prog1 ,GUN会自动生成一个名为 a.out 的可执行文件。

1.2 初识输入输出

  1. cin: iostream库内定义的 istream 类对象,被称为标准输入。
  2. cout: iostream库内定义的 ostream 类对象,被称为标准输出。
  3. cerr 和 clog 是iostream库内定义的两个 ostream 类内的对象。cerr 通常用于输出警告和错误信息,也被称为标准错误;而 clog 用来输出程序运行时的一般性消息。
  4. iostream 库内定义了两个基础类—— istream 和 ostream ,分别表示输入流和输出流。
  5. 流(stream): 随时间推移,字符是按顺序生成或消耗的。一个流就是一个字符序列。是从IO设备读出或写入IO设备的。
  6. 通过预处理器中的#include指令来使用头文件。但#include指令与头文件名字必须写在同一行中。
  7. 表达式(expression): 它由一个或多个运算对象和运算符(0个或更多)组成。
  8. endl : 是一个被称为 操纵符 的特殊值。写入endl的作用是换行,并刷新与设备关联的 缓冲区(buffer)
  9. 命名空间(namespace): 可以避免不经意的名字定义冲突,以及使用库中相同名字导致的冲突。
  10. 标准库定义的所有名字都在命名空间 std 中。
  11. 通过命名空间来使用库中成员有一个副作用:必须显式地说明我们想使用来自命名空间中成员的名字。
  12. 可以使用 作用域运算符(::) 来指出定义在哪个命名空间的哪个成员,比如访问std中的cin对象——std::cin。而在3.1节中还有一种指定命名空间的方法。
  13. 输出运算符(<<): 接受两个运算对象,左侧 必须 是一个ostream对象,右侧则是要打印的值。可以用多个(<<)将要输出的值连接起来,合并为单一语句。该表达式的值是最左侧的ostream对象。
  14. 输入运算符(>>):
    接受一个istream对象作为左侧运算对象,接受一个对象作为右侧运算对象。可以用多个(>>)将要输入的对象连接起来,相当于分别将输入的第一、二……个值存入第一、二……个对象中。
    比如std:: cin >> v1 >> v2;std::cin >> v1; std::cin >> v2;等价。又因为 输入运算符返回其左侧运算符对象作为表达式的值。 所以std:: cin >> v1 >> v2;(std:: cin >> v1 )>> v2;也等价。
  15. 标准库(standard library)定义了不同版本的输出运算符,来处理不同类型的运算对象。

1.3 注释简介

  1. 注释(comments): 用于帮助他人理解程序。编译器会自动忽略注释。
  2. C++中注释的种类:单行注释(//)和多行注释(/**/)
  3. 注释界定符(/**/)不能嵌套。
/*
*注释/**/不能嵌套
*“不能嵌套”及后面的内容,编译器不会忽略,从而导致编译器报错
*/
  1. 单行注释后中任何内容都会被忽略

1.4 控制流

1.4.1 while语句

  1. while语句的格式如下:
while (condition)
    statement
  1. 复合赋值运算符: 将左侧和右侧运算对象进行运算后,把结果赋值给左侧运算对象。比如+=*=-=

1.4.2 for语句

  1. for语句包含两个部分:循环头和循环体
  2. 循环体由三个部分组成:一个初始化语句(init-statement)、一个循环条件(condition)、一个表达式(expression)。

1.4.3 读取数量不定的输入数据

  1. 如果是以一个istream对象作为条件,检测的就是标准输入流的状态,有效则成功,反之失败。
  2. 当遇到文件结束符(end-of-file,简称EOF),或遇到一个无效输入(比如输入类型不匹配),istream对象的状态会变无效。
  3. Windows系统中输入EOF是按Ctrl+Z,UNIX系统中输入EOF是按Ctrl+D。

1.5 类简介

  1. 在C++中,程序员通过定义类(class)来定义自己的数据结构(data structure)
  2. 一个类定义了一种类型,与其相关的一组操作,也被称为类类型(class type)
  3. 程序员自定义的头文件通常以(.h)为后缀,还有其它后缀,比如.H、.hpp或.hxx。
  4. C++的标准头库文件通常不带后缀,编译器一般不对头文件名的格式有要求,但有的IDE对此有要求。
  5. 类的作者决定类类型对象上可以使用的所有操作,比如对该类对象进行加法、赋值或输入输出运算时会发生什么事情。
  6. 包含来自标准库的头文件时,应该使用<>包围文件名。对于其它不属于标准库的头文件,则使用""包围。
  7. 大多数操作系统支持文件重定向这种机制允许我们将标准输入和标准输入与命名文件文件相关联
  8. 成员函数(member function): 是定义为类的一部分的函数,有时也被称为 方法(method)。
  9. 通过 点运算符(.) 可调用类类型的对象中的public成员。运算结果为右侧运算对象指定的成员。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值