本系列文章为作者浏览《C++ primer》后总结的重要知识点,对简略的根底语法和常识进行了删去,总结出容易忘记和较为细节的知识点,适宜有肯定C语言语法根底的同志浏览。这本书切实是太厚了,然而又像是一个宝库,心愿我精简后的知识点能够为以前浏览过该书的同志的温习带来便当,为从未浏览过该书的同志做一个浏览的疏导。

1.2 初识输入输出

iostream库蕴含两个根底类型:istreamostream,示意输出流输入流

一个流就是一个字符序列,是从IO设施读入或写入IO设施的。
“流”:随着工夫的推移,字符是程序生成或耗费的
规范库定义了4个IO对象。
1.cin:istream类型的对象,规范输出。
2.cout:ostream类型的对象,规范输入。
3.cerr:ostream类型的对象,规范谬误。用来输入正告和错误信息。
4.clog:输入程序运行时的一般性信息。

#include <iostream> :通知编译器咱们想要应用iostream库。尖括号中的名字指出了一个头文件。每个应用规范库设施的程序都必须蕴含相干头文件。#include指令和文件的名字必须写在同一行中。通常状况下,#include指令必须呈现在所有函数之外。

std::cout<<"Enter two numbers:"; :给用户打印一条音讯。这个音讯是一个字符串字面值常量

std::cout<<endl; :endl是一个被称为操纵符的非凡值。成果是完结以后行,并将于设施关联的缓冲区中的内容刷到设施中。缓冲刷新操作能够保障目前为止程序产生的所有输入都真正写入输入流中,而不是仅仅停留在内存中期待写入流

前缀std::指出名字cout和endl是定义在名为std的命名空间中的。命名空间能够帮咱们防止不经意的名字定义抵触,以及应用库中雷同名字导致的抵触。规范库定义的所有名字都在命名空间std中。

1.3 正文简介

正文界定符不能嵌套。(/**/)

1.4 控制流

当应用一个istream对象作为条件,其成果是检测流的状态。若流无效,即流未遇到谬误,则检测胜利。遇到文件结束符或一个有效输出(如读入的值不是一个整数)。istream对象的状态会变为有效。处于该状态的istream对象会使条件变为假。

在Windows零碎中,敲Ctrl+z,而后按Enter键。在Unix零碎中,包含Mac OS X零碎中没用Ctrl+d

编译器的一部分工作是寻找程序文本中的谬误。编译器没有能力查看一个程序是否依照作者用意工作,然而能够查看模式上的谬误。如:
1.语法错误(syntax error)
如endl后应用了冒号而不是分号,字符串常量两侧漏掉了引号,return语句漏掉了分号等。
2.类型谬误(type error)
如像一个冀望参数为int的函数传递了一个字符串字面值常量。
3.申明谬误(declaration error)
对来自规范库的名字遗记应用std::、标识符名字拼写错误等。

当你抉择一种格局格调时,思考它会对程序的可读性和易了解性有什么影响,而一旦抉择了一种格调,就要保持应用

1.5 类简介

C++最后的一个设计焦点就是能定义应用上像内置类型一样天然的类类型。(class type)

习惯上,头文件依据其中定义的类的名字来命名。通常用.h作为头文件的后缀。规范库头文件通常不带后缀。编译器个别不关怀头文件名的格局,但有的IDE对此有特定要求

蕴含来自规范库头文件时,应该用<>突围头文件名。对于不属于规范库的头文件,则用""突围

从键盘重复敲入记录作为输出,十分乏味。大多数OS反对文件重定向,这种机制容许咱们将规范IO与命名文件关联起来:
$ addItems <infile >outfile
假设$是IO提示符,咱们的程序曾经编译为addItems.exe的可执行文件(在UNIX中是addItems),则上述命令会从一个名为infile的文件读取记录,并将后果写入到outfile中,两个文件都位于当前目录。