我们知道C++是由C语言发展而来的,几乎完全兼容C语言,换句话说,你可以在C++里面编译C语言代码。如下图:
C语言是面向过程的语言,C++在C语言之上增加了面向对象以及泛型编程机制,因此C++更适合中大型程序的开发,然而C++如果不使用高级特性,它的效率跟C并无差异。
C++是"C Plus Plus"的简称所以很多C++程序后缀都是.cpp,从语法上C语言是C++的一部分,所以C语言可以直接写在C++里面,现在对C和C++来说是两门独立的语言,但是在早期并没有C++,但是有"带类的C",带类的C是C语言的一个扩展和补充,它增加了很多新语法,目的是提高开发效率,这时的C++仅支持简单的面向对象,更没有自己的编译器,只是通过一个预处理程序(cfront),把C++代码翻译成C语言代码,再通过C语言编译器合成最终程序。随着C++语法的完善,它能够支持面向过程编程,面向对象编程和泛型编程,成了一门独立的语言,拥有了自己的编译方式。
C++关键字
在C中关键字有32个,而C++有63个关键字,其中有32是C语言的,如下:
asm do if return try continue auto double inline short typedef for bool dynamic_cast int signed typeid public break else long sizeof typename throw case enum mutable static union wchar_t catch explicit namespace static_cast unsigned default char export new struct using friend class extern operator switch virtual register const flase private template void true const_cast float protected this volatile while delete goto reinterpret_cast
输入输出(I/O流):
首先我们需要引入一个C++中头文件#include<iostream>用来支持输出输出。
cout输出流:
如下代码中,因为cout在std命名空间里所以要加std::,代码中使用cout来输出一句"hello world!"而他们之间的<<符号像一种水流的形式把"hello world!"流入cout,然后cout把流入的数据输出到终端(控制面板)上。这就是一个基本的输出.
#include<iostream>
int main(){
std::cout<<"hello world!";
return 0;
}
但是cout还能自动识别对应的C++类型,如下:
上述代码使用了endl来换行,同样也要在前面加std::不然会报错,或者也可以在字符串里面加\n同样也可完成换行功能。同样cout可以跟printf一次输出多种数据,如下:
可以看到C++的输出流不用输入对应的格式控制符他能自己检查对应的类型。每次使用endl的时候都需要加std::很不方便,但直接展开使用会有冲突的风险。指定展开可以解决这个问题;
如,我要展开endl的命名空间格式如下:
using std::endl;
这样就可以指定展开endl了而又不用担心全部展开的风险,同样cout也可以用同样的方式展开
cin输入流:
cin输入跟cout的输出相反,cout是从一个地方拿出数据输出,cin是从控制台或者其他地方拿取数据放到另一个地方去,cin的示例代码如下:
上述代码中cin的输入操作,运用的是和输出相反的>>符号,就像是把数据流到对应的变量中一样,然后放入对应的变量按照对应变量的顺序依次放入数据。