C++ Primer 总结——第一章 开始

  1. C++ 程序是如何跑起来的?
    操作系统调用 main 函数,从而运行 C++ 程序。
  2. 函数的定义由四部分组成
    • 返回类型(return type)
    • 函数名(function name)
    • 形参列表(parameter list)
    • 函数体(function body)
  3. 注意:main 函数的返回值类型必须是 int
    • 在大多数系统中,main 的返回值被用于指示状态。返回值 0 代表成功,其他值通常用于指示错误类型,具体的含义由系统定义。
  4. 内置类型(build-in type):语言自身定义的类型。
  5. 编译、运行程序
    • 如何编译程序由操作系统编译器决定。
    • 集成开发环境(Integrated Developed Environment, IDE):将编译器和其他程序创建和分析工具包装在一起。譬如code blocks。
    • 源文件的命名约定:源文件(source file)的后缀告诉系统,这是一个什么类型的文件。C++ 源文件常见的后缀有:.cc、.cxx、.cpp、.cp、.C(注意是大写)。
    • 从命令行运行编译器
      • CC program.cc
        • CC 是编译器的名字(我在 Ubuntu 上进行编译,使用的是 g++。这是 GNU 的 C++ 编译器);
        • 这条命令将生成可执行文件,windows 通常命名为 program.exe,unix 则通常命名为 a.out。
  6. C++ 没有定义任何输入输出(IO)语句,而是使用标准库(standard library)来提供 IO 机制。
    • 标准库的头文件通常不带 .h
    • 包含标准库的头文件使用<>,不属于标准库的头文件使用”“
  7. iostream库包含两个基础类型
    • istream:输入流
    • ostream:输出流
  8. 如何理解“流”?
    • 流是一个字符序列
    • 流从IO设备读出、写入IO设备;
    • 流(stream)表示,随着时间推移,字符顺序生成或消耗
  9. 标准输入输出对象
    • cin(标准输入,standard input)
      • istream 对象
    • cout(标准输出,standard output)
      • ostream 对象
    • cerr(标准错误,standard error)
      • ostream 对象
      • 用于输出警告、错误信息
    • clog
      • ostream 对象
      • 用于输出程序运行时的一般信息
  10. 向流写入数据
    • 表达式(expression)
    • 输出运算符<<
      • <<运算符接受两个运算对象
        • 左侧:ostream 对象
        • 右侧:要打印的值
      • 此运算符返回其左侧的运算对象,所以我们可以连续输出。
    • 字符串字面值常量(string literal)
      • 用双引号包围的字符序列
      • 例如:”string literal”
    • 操纵符(manipulator):endl
      • 结束当前行,将与设备关联的缓冲区(buffer)中的内容刷到设备中。这样可以保证,目前为止程序所产生的所有输出都真正写进了输入流而非内存中。
  11. 命名空间(name space)
    • 命名空间帮助我们避免名字定义冲突
    • 标准库定义的所有名字都在命名空间 std 中。
    • 作用域运算符(::)
      • 通过命名空间来使用标准库比较麻烦,每次都要使用作用域运算符来说明。
  12. 从流读取数据
    • 输入运算符(>>)
      • 左侧对象:istream
      • 右侧对象:从给定 istream 中读数据,存入此对象。
      • 输入运算符返回其左侧运算对象。
  13. 注释(comments)
    • 单行注释
    • 界定符对注释(不能嵌套注释)
  14. 语句块(block)
    • 用花括号包围的语句。
    • 语句块也是语句的一种,任何能够使用语句的位置都可以使用语句块。
  15. 复合赋值运算符
    • 一个运算符和赋值(assignment)的结合
    • 例如 +=
  16. 控制流
    1. while 语句
    2. for 语句
    3. 读入数量不定的输入数据
      • while(std::cin >> inputData)
        • 由于输入运算符反悔的是左侧对象,所以实际上是在检测 std::cin 的有效性。
      • 我们在使用 istream 对象作为条件时,效果是检测流的状态
        • 遇到文件结束符(EOF,end of file)或遇到无效输入,istream 对象状态变为无效,while 条件判断为假。
      • 键盘输入数据,如何指出文件结束?
        • Windows:Ctrl + Z,Enter
        • Unix:Ctrl + D。
    4. if 语句
  17. 类简介
    • C++ 中,我们通过定义类(class)来定义自己的数据结构
    • 每个类实际是定义了一种新的数据类型,类型名就是类名。
    • 成员函数(member function):类中定义的函数,也称方法(method)。
      • 通常以一个类对象的名义,使用点运算符来调用成员函数,例如 isbn.read()
    • 文件重定向——将标准输入、输出和命名文件关联起来
    • addItems outfile
    • addItems 是编译后得到的可执行文件名
    • addItems 执行时,从 infile 读入数据,并将输出写入 outfile。

你可能感兴趣的:(C/C++)