C++第二章笔记

2014/9/17 posted in  C++

又回到了刚开始大学生活的感觉,当时在啃蓝书,厚厚的一本,感觉没有尽头。现在的C++更厚,而且,做笔记看书是最慢的,感觉没有尽头。


C++能够使用printf,scanf和其他所有标准C的输入输出函数,只需要包含常规C语言的stdio.h头文件。

 

C++和C一样,也是用终止符,而不是分隔符,终止符是一个分毫,它是语句的结束标记,是语句的组成部分。而不是语句之间的标记。

C++句法要求main()函数的定义以函数头int main()开始,main函数有返回值是个好习惯,到现在为止上课老师依然是void实在蛋疼。

Main函数如果没有参数,则应加上void。对于main函数来说,可以不加return 0,ANSI/ISO C++标准允许这么做,当不加return语句时会自动补上return 0,但是这个标准不适用于其他函数,当然,不加return 是个不好的习惯。

 

像iostream这样的文件叫做包含文件,C语言的传统是头文件使用拓展名.h,将其作为一种通过名称标识文件类型的简单方式,而C++的头文件没有拓展名,有些头文件被转换为C++头文件,这些文件被重新命名,去掉了拓展名.h,并加上了前缀c,如stdio.h变为cstdio。对于去掉h,,不是C++形式上的变化,没有h的头文件可以包含名称空间。

 

如果使用iostream而不是iostream.h(C++旧式风格)应使用using namespace std;名称空间编译指令来使iostream中的定义对程序可用。

名称空间支持是一项C++的特性,旨在编写大型程序以及将多个厂商现有的代码组合起来的程序时更容易。

名称空间::内容;

按着这种方法,类、函数和变量便是C++编辑器的标准组件。

 

“C++拓展了运算符重载的概念允许为用户定义的类型(类)重定义运算符的含义。

 

诸如endl等对cout来说有特殊含义的特殊符号被称为控制符。

C++也支持C的旧式方法换行“n”,但与endl的区别是endl确保程序继续运行前刷新输出(刷新缓冲区,立即显示在屏幕上),而是用“n”不能提供这样的保证。

C++源代码的风格

  1. 每条语句占一行
  2. 每个函数都有一个开始花括号和一个结束花括号,这两个花括号各占一行
  3. 函数中的语句都相对于花括号进行缩进
  4. 与函数名称相关的圆括号周围没有空白

空行将声明语句与程序其它部分非开,这是C常用方法但在C++中不那么常见。

与printf相比,cont能识别类型,cout的设计更灵活,更好用,另外,它是可扩展的,也就是说可以重新定义“<<”运算符,使cout能够识别和显示所开发的新数据类型,如果喜欢printf提供的细致的控制功能,可以使用更高级的cout来获得相同的效果。(C的输入输出和C++的输入输出是两个不同的缓存区,导致C++输入输出较慢,如何解决C++输入慢)。

类之于对象,如同数据类型之于变量,类定义描述了数据格式及其用法。类描述了一种数据类型的全部属性(包括可执行的操作)。

C++程序应当为程序中使用的每个函数提供原理。

在特定函数中使用类似using std::cont这样的编译命令而不是using namespace std;更节省。

个人命名风格特别值得注意,它有助于保持一致性和精确性,精确、让人一目了然的个人命名约定是良好的软件工程的标识。

C++有六种类型的语句:

  1. 声明语句
  2. 赋值语句
  3. 消息语句:将消息发送给对象,激发某种行为
  4. 函数调用
  5. 函数原型
  6. 返回语句

类是用户定义的数据类型规范,详细描述了如何表示信息以及可对数据执行哪些操作,对象是根据类规范创建的实体。


C++ PP前十章的内容算是过第二遍了,而前七章和蓝书无差,都看烦了= =,感觉再看下去就要背下来了。不过再简单的东西,为了十章以后的深入,就这样忍了吧。