C++简介
C++融合了3种不同的编程方式:C语言代表的过程性语言、C++在C的基础上添加的类代表的面向对象语言、C++模板支持的泛型编程。
面向对象编程(OOP):OOP程序设计方法首先设计类,准确地表示程序要处理的东西。类定义描述了对每个类可以进行的操作。从低级组织(类)到高级组织(程序)的处理过程叫做自下向上的编程。
泛型编程:强调独立于特定数据类型。比如,要对不同类型的数据进行排序,泛型编程可以只编写一个泛型函数,并将其应用到各种实际类型。(不用为每个数据类型单独编写函数)
cin.get()函数
cin.get()
函数就等同于C语言中的getchar()
函数,就是从输入流中按照顺序读取一个字符(必须按Enter才可以读取,并且Enter键也算一个字符加入到缓冲区末尾),详细可以看昨天的C语言笔记,不再赘述。
(注意:当cin.get()前面有cin>>时,先输入cin>>要的数据,按下回车,此时数据被读取,而回车键作为一个数据同时也是确认键,被cin.get()读取)
mian()函数
int main() //函数头
{
语句; //函数体
return 0;
}
函数头描述了函数与调用它的函数之间的接口
通常,main()
函数被启动代码调用,启动代码是编译器添加到程序中的,是程序和操作系统之间的桥梁。所以事实上,int mian()
函数头描述的是main()
函数与操作系统之间的接口。
预处理
预处理器在主编译前对源文件进行处理,处理名称以#开头的编译指令,会在编译程序时自动运行。
例如:#include <iostream>
,该编译指令将iostream文件中的内容添加到程序中。这是典型的预处理器操作:在源代码编译之前,替换或添加文本(iostream文件中的内容将取代#include <iostream>
,原始文件没有被修改,而是将源代码文件和iostream组合成一个复合文件,编译的下一阶段将使用该文件)
cout新花样
在打印之前。cout
必须将整数形式的数字转换为字符串形式。
实际上,C++插入运算符<<将根据后面的数据类型相应地调整行为,这是一个运算符重载的例子。所以,其实cout
比C语言的printf()
函数聪明很多,因为printf()
函数还需要转换说明(%d %s)来指出打印的类型是整数还是字符串。
类和对象
类描述指定了可对类对象执行的所有操作。要对特定对象执行这些允许的操作,需要给对象发送一条消息。C++有两种发送这种消息的方式:
- 使用类方法(函数调用)
- 重新定义运算符(如cin cout)
函数原型
C++应该为程序中使用的每个函数提供原型
以sqrt()
函数为例,其函数原型应该为:double sqrt(double);
在使用sqrt()时,也需要提供原型,有两种方法:
- 在源代码中输入函数原型;
- 包含头文件cmath,其中定义了原型
实际上,我经过编写,发现没有包含cmath也可以正常使用sqrt()函数,
经过查找资料,目前我认为是因为iostream已经包含了cmath(回答截图来源于知乎)