C++Primer再起航

来源:互联网 发布:淘宝链接短网址转换 编辑:程序博客网 时间:2024/04/26 11:11

本文介绍:

  • 编写简单的C++程序
  • 初窥输入/输出
  • 关于注释
  • 控制结构
  • 类的简介
  • 参考文献

编写简单的C++程序

`int main(){    return 0;}`

1. 每个 C++ 程序都包含一个或多个函数,而且必须有一个命名为 main。函数由执行函数功能的语句序列组成。操作系统通过调用main 函数来执行程序
2. main 函数则执行组成自己的语句并返回一个值给操作系统。
3. main 函数的返回值必须是 int 型,该类型表示整数。int 类型是内置类型,即该类型是由 C++ 语言定义的。
4. 函数体函数定义的最后部分,是以花括号开始并以花括号结束的 语句块:
{
return 0;
}
例中唯一的语句就是 return,该语句终止函数。

注意 return 语句后面的分号。在 C++ 中多数语句以分号作为
结束标记。分号很容易被忽略,而漏写分号将会导致莫名其妙
的编译错误信息

  1. 当 return 带上一个值(如 0)时,这个值就是函数的返回值。返回值类型
    必须和函数的返回类型相同,或者可以转换成函数的返回类型。对于 main 函数,
    返回类型必须是 int 型,0 是 int 型的。

  2. 在大多数系统中,main 函数的返回值是一个状态指示器。返回值 0 往往表
    示 main 函数成功执行完毕。任何其他非零的返回值都有操作系统定义的含义。
    通常非零返回值表明有错误出现。每一种操作系统都有自己的方式告诉用户
    main 函数返回什么内容


调用 GNU 或微软编译器

调用 C++ 编译器的命令因编译器和操作系统的不同而不同,常用的编译
器是 GNU 编译器和微软 Visual Studio 编译器。调用 GNU 编译器的默
认命令是 g++:

$ g++ prog1.cc -o prog1

这里的 $ 是系统提示符。这个命令产生一个为 prog1 或 prog1.exe 的
可执行文件。在 UNIX 系统下,可执行文件没有后缀;**而在 Windows 下,
后缀为 .exe**。

-o prog1 是编译器参数以及用来存放可执行文件的文件名。如果省略 -o prog1,那么编译器在 UNIX 系统下产生名为 a.out 而
在 Windows 下产生名为 a.exe 的可执行文件。

微软编译器采用命令 cl 来调用:

C:\directory> cl -GX prog1.cpp

这里的 C:directory> 是系统提示符,directory 是当前目录名。cl 是
调用编译器的命令。-GX 是一个选项,该选项在使用命令行界面编译器
程序时是必需的。

微软编译器自动产生与源文件同名的可执行文件,这
个可执行文件具有 .exe 后缀且与源文件同名。本例中,可执行文件命
名为 prog1.exe。

从命令行编译器

例如 UNIX 的 shell 窗口或
Windows 的命令提示窗口)编译程序

`$ CC prog1.cc`

1. 这里 CC 是编译器命令名,$ 表示系统提示符。编译器输出一个可执行文件,我们可以按名调用这个可执行文件。
2. 在我们的系统中,编译器产生一个名为a.exe 的可执行文件。
3. UNIX 编译器则会将可执行文件放到一个名为 a.out 的文件中。

运行可执行文件,可在命令提示符处给出该文件名

`$ a.exe`

在 UNIX 系统中,即使在当前目录,有时还必须指定文
件所在的目录
$ ./a.exe

“.”后面的斜杠表明文件处于当前目录下

访问 main 函数的返回值的方式和系统有关。不论 UNIX 还是 Windows 系
统,执行程序后,必须发出一个适当的 echo 命令。UNIX 系统中,通过键入如
下命令获取状态:

`$ echo $?`

Windows 系统下查看状态

`C:\directory> echo %ERRORLEVEL%`

初窥输入/输出

iostream 库的基础是两种命名为 istream 和 ostream 的类型,分别表示输入
流和输出流。

标准库定义了 4 个 IO 对象:

  • cin 标准输入
  • cout 标准输出
  • cerr 标准错误
  • clog 一般信息

1.从cin 读入时,数据从执行程序的窗口读入,当写到 cin、cerr 或 clog 时,输
出写至同一窗口。

2.运行程序时,大部分操作系统都提供了重定向输入或输出流的方法。利用重定向可以将这些流与所选择的文件联系起来

关于注释

  1. 程序通常混用两种注释形式。注释对一般用于多行解释,而双斜线注释则常
    用于半行或单行的标记。

  2. 太多的注释混入程序代码可能会使代码难以理解,通常最好是将一个注释块
    放在所解释代码的上方。

  3. 代码改变时,注释应与代码保持一致。程序员即使知道系统其他形式的文档
    已经过期,还是会信任注释,认为它会是正确的。错误的注释比没有注释更糟,
    因为它会误导后来者。

控制结构

  1. C++的缩排和格式

    • C++ 程序的格式非常自由,花括号、缩排、注释和换行的位置通常对程
      序的语义没有影响。例如,表示 main 函数体开始的花括号可以放在与
      main 同一行,也可以像我们那样,放在下一行的开始,或放在你喜欢的
      任何地方。唯一的要求是,它是编译器所看到在 main 的参数列表的右
      括号之后的第一个非空格、非注释字符。

    • 在选择格式化风
      格时,要考虑提高程序的可读性,使其更易于理解。一旦选择了某种风
      格,就要始终如一地使用。

  2. 再谈编译

    1. 语法错误

    2. 类型错误

      • 传递了字符串字面值给应该得到整型参数的函数。
    3. 声明错误

      • 从标准库中访问名字时忘记使用“std::”,
      • 以及由于疏忽而拼错标识符名:
    4. 从键盘输入文件结束符

      • 操作系统使用不同的值作为文件结束符。Windows 系统下我们通过键入
        control—z——同时键入“ctrl”键和“z”键,来输入文件结束符。
        Unix 系统中,包括 Mac OS—X 机器,通常用 control—d。

类的简介

注意:

  • 对于自定义的类,必须使得编译器可以访问和类相关的定义

  • 类类型存储在一个文件中,其文件名如同程序的源文件名一样,由文件名和文件后缀两部分组成。

  • 通常文件名和定义在头文件中的类名是一样的。通常后缀是 .h,但也有一些程序员用 .H、.hpp 或 .hxx。编译器通常并不挑剔头文件名

  • 点操作符:仅仅应用与类类型的对象,左侧必须是类对象,右侧必须是该类型成员

参考文献

  • C++ Primer 学习笔记1快速入门
  • C++primer学习笔记(1)
  • c++ Primer学习笔记
2 0