第02章 开始学习C++


本章内容包括:

  • 创建C++程序.
  • C++程序的一般格式.
  • #include编译指令.
  • main()函数.
  • 使用cout对象进行输出
  • 在C++程序中加入注释.
  • 何时以及如何使用endl.
  • 声明和使用变量.
  • 使用cin对象进行输入.
  • 定义和使用简单函数.

2.1 进入C++

  • 程序清单2.1 myfirst.cpp

2.1.1 main()函数

  • 函数头和函数体;函数头对函数与程序其他部分之间的接口进行了总结. 
    在C++中,不能省略分号.
  • 1.作为接口的函数头 
    • 事实上,main函数头描述的是main()和操作系统之间的接口.
    • int main(void),在C++(不是C)中,让括号空着与在括号中使用void等效(在C中,让括号空着意味着对是否接受参数保持沉默).
    • ANSI/ISO C++标准对哪些抱怨必须在main()函数最后包含一条返回语句过于繁琐的人做出了让步.如果编译器到达main()函数末尾时没有遇到返回语句,则认为main()函数以如下语句结尾:return 0;这条隐含的返回语句只适用于main()函数,而不适用于其他函数.
  • 2.为什么main()不能使用其他名称

2.1.2 C++注释

  • C++注释以双斜杠//打头,到行尾结束.
  • C++也能够识别C注释,C注释包括在符号//之间,可以跨越多行.事实上,C99标准也在C语言中添加了//注释.

2.1.3 C++预处理器和instream文件

  • 使用cin和cout进行输入和输出的程序必须包含文件iostream.

2.1.4 头文件名 
2.1.5 名称空间

  • 如果使用iostream,而不是iostream.h,则应使用下面的名称空间编译指令来使iostream中的定义对程序可用:using namespace std;这叫做using编译指令.
  • 名称空间支持是一项C++特性,旨在让你编写大型程序以及将多个厂商现有的代码组合起来的程序时更容易,它还有助于组织程序.
  • 名称空间让厂商能够将其产品封装在一个叫做名称空间的单元中,这样就可以用名称空间的名称来指出想使用哪个厂商的产品.

2.1.6 使用cout进行C++输出

  • 如果熟悉C后才开始学习C++,则可能注意到了,插入运算符(<<)看上去就像按位左移运算符(<<),这是一个运算符重载的例子,通过重载,同一个运算符将有不同的含义.编译器通过上下文来确定运算符的含义.C本身也有一些运算符重载的情况.例如,&符号既表示地址运算符,又表示按位AND运算符;C++扩展了运算符重载的概念,允许为用户定义的类型(类)重新定义运算符的含义.
  • 1.控制符endl:表示一个重要的概念:重起一行.
  • 2.换行符:C++还提供了另一种在输出中指示换行的旧式方法:C语言符号\n.\n和endl的一个差别是,endl确保程序继续运行前刷新输出(将其立即显示在屏幕上);而使用\n不能提供这样的保证,这意味着在有些系统中,有时可能在您输入信息后才会出现提示.

2.1.7 C++源代码的格式化

  • 然而,C++11新增的原始(raw)字符串可包含回车.
  • 1.源代码中的标记和空白
  • 2.C++源代码风格(多数程序员遵循的规则) 
    • 每条语句占一行.
    • 每个函数都有一个开始花括号和一个结束花括号,这两个花括号各占一行.
    • 函数中的语句都相对于花括号进行缩进
    • 与函数名称相关的圆括号周围没有空白.

2.2 C++语句

2.2.1 声明语句和变量

  • 在C和Pascal中,所有的变量声明通常窦唯与函数或过程的开始位置,但C++没有这种限制.
  • 实际上,C++通常的做法是,在首次使用变量前声明它.

2.2.2 赋值语句:程序清单2.2 carrot.cpp 
2.2.3 cout的新花样 
2.3 其他C++语句:程序清单2.3 getinfo.cpp 
2.3.1 使用cin 
2.3.2 使用cout进行拼接 
2.3.3 类简介

  • 类描述了一种数据类型的全部属性(包括可使用它执行的操作),对象是根据这些描述创建的实体.

2.4 函数 
2.4.1 使用有返回值的函数:程序清单2.4 sqrt.cpp

  • C++程序应当为程序中使用的每个函数提供原型.函数原型之于函数就像变量声明之于变量-指出涉及的类型.
  • 不要混淆函数原型和函数定义.
  • 使用库函数:编译器倾向与给函数名添加下划线前缀—提示它们对程序具有最后的发言权.

2.4.2 函数变体 
2.4.3 用户定义的函数:程序清单2.5 ourfunc.cpp

  • 1.函数格式
  • 2.函数头

2.4.4 用户定义的有返回值的函数:程序清单2.6 convert.cpp 
2.4.5 在多函数程序中使用using编译指令

  • 当前通信的理念是,只让需要访问名称空间std的函数访问它是更好的选择.
  • 命名约定:

2.5 总结

  • C++可以使用大量的C库函数.要使用库函数,应当包含提供该函数原型的头文件.

2.6 复习题:在附录J中可以找到所有复习题的答案 
2.7 编程练习

附件:本章源代码下载地址

猜你喜欢

转载自blog.csdn.net/weixin_39345003/article/details/82118386