【C++ Primer Plus】第二章:开始学习C++

  1. C++能够使用printf(),scanf()和其他标准的C输入输出函数,只需要包含常规的C语言的h文件,且C++对大小写敏感。
  2. C++使用分号作为终止符,该符号不可省略。
  3. 函数由函数头和函数体组成。函数头指出函数的返回值的类型和函数期望通过参数传递给它的信息的类型。函数体由花括号{ }和C++语句组成。位于函数名前面的部分叫做函数返回类型,它描述的是从函数返回给调用它的函数的信息。函数名后面括号中的部分叫做形参(argument list),它描述的是从调用函数传递给被调用函数的信息。
  4. mian()函数被操作系统中的启动代码所调用,该函数头描述的是main()和操作系统之间的接口。返回值被操作系统接收。
  5. int main() 相当于 int main(void)
  6. 如果编译器到达main()函数结尾时没有遇到返回语句,则认为main()函数结尾自动加了 return 0; 该语句只适用于main()函数,不适用于其他函数。
  7. C++的注释以双斜杠//打头,且能识别C语言的/* */的注释。
  8. 预处理编译指令#include导致源代码在编译之前,在对应的地方被替换或添加了文本,头文件中的内容将取代程序中的代码行 #include。源文件没有被修改,而是将源代码文件和iostream组合成一个复合文件,编译的下一阶段也将使用该文件。
  9. C语言的传统是,头文件使用扩展名.h,而C++的头文件没有扩展名。有的C头文件被转换为了C++中的头文件,要在前面加一个c,如:h -> cmath 。
  10. 支持命名空间是C++的一项新特性,旨在编写大型程序以及将多个厂商现有的代码组合起来时更容易。比如两个人同时完成一个项目,两个人分开完成项目中的某一部分功能,对接的时候,发现两人代码中都有一个交wanda()的函数,这种情况下,编译器就不知道合并后的代码中出现的wanda()到底指的是哪一个函数。此时,引入命名空间这一概念能够解决这个问题:personA:wanda(); person:wanda()
  11. 类,变量,函数是C++编译器的标准组件,它们现在都被放置在名称空间std中。这就意味着iostream中定义的用于输出的cout实际是std::cout,而endl则实际上是std::endl
  12. Using编译指令使得名称空间中的所有名称都可用,但开放了所有的名称似乎存在潜在的问题,因此更为安全的做法是只开放有用的名称。如 using std::cout; using std::cin;
  13. << 表示该语句把这个字符串发送给了cout,该符号指出了信息流动的路径。而cout实际上是一个预定义的对象,cout的对象属性中包含了一个插入运算符<<,而后通过重载,使得该运算符有了不同的含义。
  14. 控制符endl是一个特殊符号,也被定义在iostream中,且在命名空间std中。每条cout语句的输出都从前一个输出的末尾开始,C++还提供了另一种在输出中换行的旧方法“\n”。
  15. 回车的作用是将语句分开,而在C++中,分号标示了语句的结尾,因此,在C++中,回车就和空格或者制表符相同。一行代码中不可分割的元素叫做标记,通常,必须用空格,制表符,或者回车将标记分开。
  16. 赋值从右到左,C++和C有一项特性:可以连续赋值运算符:a=b=c=1;
  17. C++提供了两种发送消息的方式:一种是使用类方法;另一种是重新定义运算符,cin,cout采用的就是这种方式。
  18. C++提供了两个用于处理输入输出的预定义对象,它们是istream和ostream类的实例,这两个类是在istream文件中定义的。为ostream类定义的插入运算符(<<)使得将数据插入到输出流成为可能;为istream类定义的抽取运算符(>>)能够从输入流中抽取信息。cin和cout都是智能对象,能够根据程序上下文自动将信息从一种形式转换为另一种形式。
  19. C++不允许将函数定义嵌套在另一个函数定义中。每个函数定义都是独立的,所有函数的创建都是平等的。
  20. 关键字不可用作变量名,也不可用作函数名。main 不是关键字,可以把main作为变量名。然而,在程序中将同一个名称(比如cout)用作对象名和变量名会把编译器搞糊涂。也就是说,在不使用cout对象进行输出的函数中,可以将cout用作变量名,但不能在同一个函数中同时将cout用作对象名和变量名。
  21. 程序访问命名空间std的方法有很多种,以下为其中4种:
    • using namespace std; 放在函数定义之前
    • using namespace std; 放在特定的函数定义之中
    • 在特定的函数中使用类似 using std::cout; 这样的编译指令
    • 完全不使用 using 编译指令,使用前缀 std:: 如:std::cout

你可能感兴趣的:(C++,1024程序员节)