C++ Primer Plus 学习笔记(第2章 开始学习C++)

C++ Primer Plus 学习笔记

第 2 章 开始学习C++

进入 C++

C++ 注释

C++注释都以双斜杠//打头,到行尾结束。
C-风格注释包括在符号/**/之间,可以跨越多行。
C++也能识别C注释,但应尽量使用C++注释,因为不涉及结尾符号和起始符号的正确配对。
C++对大小敏感
如果程序运行完毕自动关闭,可在retrun前添加如下语句:

cin.get();          \\有时需要两条这样的语句

在C++中,每条完整的指令都称为语句,所有的语句都以分号结束。

int main()          \\C++经典函数头,通常必须包含
int main(void)      \\void明确指出,函数不接受参数。C++中,括号为空与在括号中使用void等效。
void main()         \\不是标准强制的一个选项,在有些系统上不能工作

如果编译器到达main()函数末尾没有遇到返回语句,则认为main()函数以如下语句结尾:

return 0;

此条隐含的返回语句只适用于main()函数,而不适用于其他函数。

#include <iostream>     \\该编译指令导致预处理器将iostream文件内容添加到程序中,在被编译前。
头文件命名约定
头文件类型约定示例说明
C++旧式风格以.h结尾iostream.hC++程序可用
C旧式风格以.h结尾math.hC、C++程可用
C++新式风格没有扩展名iostreamC++程序可用,使用namespace std
转换后的C加上前缀c,没有扩展名cmathC++程序可用,可以使用不是C的特性,如namespace std

名称空间支持是C++特性。类、函数和变量便是C++编译器的标准组件,都被放置在名称空间std中。仅当头文件没有扩展名.h时,情况才是如此。

using namespace std;        \\using编译指令,表明可以使用std名称空间中定义的名称,而不必使用std::前缀。

更好的方法是,只使用所需的名称可用:

using std::cout;
using std::cin;
using std::endl;

cout << string;     \\输出是一个流,即从程序流出的一系列字符,cout对象表示这种流,其属性是在iostream文件中定义的。cout的对象属性包括一个插入运算符(<<),它可以将右侧的信息插入到流中。
cout << endl;       \\重起一行,在iostream中定义,且位于名称空间std中。另一种换行的旧式方法:C语言符号\n
cin >> variable;   \\cin使用>>运算符从输入流中抽取字符。

一行代码中不可分割的元素叫做标记(token),通常用空格,制表符或回车符将两标记分开。
用空格、制表符或回车符统称为空白(white space)。
有些字符(如括号或逗号)是不需要用空白分开的标记。

C++ 源代码风格
  • 每条语句占一行
  • 每个函数都有一个开始花括号和一个结束花括号,并各占一行
  • 函数中的语句都相对于花括号进行缩进
  • 与函数名称相关的圆括号周围没有空白

C++中,所有的变量者必须声明。
符号=叫做赋值运算符,C++(和C)可以连续使用赋值运算符。
C++插入运算符<<将根据其后的数据类型调整cout行为,这是一个运算符重载的例子。

类简介

类是用户定义的一种数据类型。要定义类,需要描述它能够表示什么信息和可对数据执行哪些操作。
类之于对象就像类型之于变量。类定义描述的数据格式及其用法,对象则是根据数据格式规范创建的实体。
C++类对应于某些语言中的对象类型,而C++对象对应于对象实例或实例变量。
类描述了一种数据类型的全部属性(包括可使用它执行的操作),对象是根据这些描述创建的实体。

cout是一个ostream类对象。ostream类定义(在iostream中定义)描述了ostream对象表示的数据以及可对它执行的操作,如将数字或字符串插入到输出流中。
cin是一个istream类对象,也是在iostream中定义。

函数来自函数库,类来自类库。
要对特定对象执行允许的操作,需要给对象发送一条消息。C++提供了两种发送消息的方式:一种方式是使用类方法,另一种方式是重新定义运算符(cout和cin采用此方式)。

函数

C++程序应当为程序中使用的每个函数提供原型。编译器必须知道函数的返回值类型和参数类型。
函数原型之于函数就像变量声明之于变量——指出涉及的类型。
原型结尾必须有一个分号,表明它是一条语句,而不是一个函数头。如果无分号,编译器将解释为函数头,并要求提供函数体。
可在源代码文件中输入函数原型,或在头文件中定义原型。
对于C++库中的每个函数,都在一个或多个头文件中提供了其原型。
原型只描述函数接口,而定义中包含了函数的代码。
C和C++将库函数的原型和定义分开了,库文件中包含了函数的编译代码,而头文件中则包含了原型。
库函数使用前必须提供原型,通常把原型放在main()定义之前。自定义新函数的源代码,可以放在main()的后面。
C++不允许将函数定义嵌套在另一个函数定义中。
main不是关键字。

在多函数程序中使用using编译指令

只让需要访问名称空间std的函数访问它是更好的选择。

让程序访问名称空间std的方法有多种,下面是其中四种
  1. using namespace std;放在特定函数定义中,让该函数可使用名称空间std中的所有元素
  2. using namespace std;放在函数定义之前,让文件中所有函数都可使用名称空间std中的所有元素
  3. 在特定函数中使用类似using std::cout;这样的编译指令,以使用特定元素
  4. 完全不使用编译指令using,而在需要时使用前缀std::,如std::cout,std::endl

第 2 章总结

C++程序由一个或多个函数模块组成。程序从main()函数开始。函数由函数头和函数体组成。

函数头指出函数的返回值(如果有的话)的类型和函数期望通过参数传递给它的信息的类型。

函数体由一系列位于花括号{}中的C++语句组成。

有多种类型的C++语句,包括下述六种:

  • 声明语句:定义函数中使用的变量的名称和类型
  • 赋值语句:使用赋值运算符=给变量赋值
  • 消息语句:将消息发给对象,激发某种行动
  • 函数调用:执行函数,结束后返回函数调用语句后的语句
  • 函数声明:声明函数的返回类型、函数接受的参数数量和类型
  • 返回语句:将一个值从被调用函数返回到调用函数中

类是用户定义的数据类型规范,它详细描述了如何表示信息和可对数据执行的操作。

对象是根据类规范创建的实体,就象简单变量是根据数据类型描述创建的实体一样。

C++提供了两个用于处理输入和输出的预定义对象coutcin,它们是istreamostream类的实例,在iostream文件中定义。

插入运算符<<将数据插入到输出流,抽取运算符>>从输入流抽取信息。

coutcin都是智能,能够根据程序上下文自动将信息从一种形式转换为另一种形式。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值