赞
踩
由于有Java的学习基础,所以学习过程中的笔记内容大概分为三个部分:① C++必须的基础内容,会书写笔记并对和Java语言的容易混淆不同之处进行区分说明,比如数据类型、函数等 ② 大部分编程语言都拥有的基础功能,只对C++与Java的不同之处进行书写,比如运算符、流程控制语句等。③ C++独有的内容会书写笔记,比如面向过程编程等。
C++ 是一门非常经典的高级编程语言。顾名思义,C++可以看做是C语言的增强版,在C的基础上扩展了更多的功能;最主要的扩展,就是面向对象和泛型编程。
C++完全兼容C,具有C面向硬件的特性;此外还拥有面向对象和泛型编程的扩展。所以C++编写的程序运行效率高、功能强大,特别适合用在系统级应用场景上。所以我们经常可以看到,偏向底层、系统的开发,一般用的语言都是C++。常用的场景如:底层硬件和系统编程、嵌入式开发、游戏开发。
写C++程序其实很简单,直接用记事本写好代码,然后用一个编译器做编译运行就可以了;不过这意味这我们得自己保证语法正确,严重影响开发效率。所以实际应用中我们一般都会使用功能更强大的工具,除了提供编译器外,还可以给我们做语法检查和提醒,方便我们调试程序——这就是所谓的“集成开发环境”(IDE)。Windows系统环境下,最普遍、最好用的IDE就是Visual Studio了,这是微软官方的开发工具,功能非常强大。
在打开的解决方案界面里,右键点击“源文件”文件夹图标,添加一个新建项。我们要添加的是一个C++文件,命名为HelloWorld,后缀名是.cpp
。
输出HelloWorld的代码如下:
① 使用命名空间
#include<iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
}
② 未使用命名空间
#include<iostream>
using namespace std
int main()
{
cout << "Hello World!" << endl;
}
我们可以点击工具栏的按钮【本地Windows调试】 (快捷键F5),用一个本地的调试器来“调试”代码;所谓的调试,就是查看具体的运行过程,我们可以用它来解决出现的问题。当然也可以点它旁边的【三角按钮】,这是不调试直接运行(快捷键Ctrl+F5)。运行后的结果如下:
界面上弹出了一个窗口,显示出了我们想要的信息“Hello World!”。后面还跟着一串信息,这是调试控制台告诉我们,程序已经执行完毕正常退出了。随便一个键,就可以关闭这个窗口。
这是一个预处理指令,告诉编译器我们需要使用一个叫做iostream
的库。因为我们需要输出信息,而系统的标准库提供了这样的功能,所以要用#include
做一个引入的预处理。
接下来的主体,是一个“主函数”。所谓的函数,就是包装好的一系列要执行的操作,可以返回一个结果。一个C++程序可以包含很多函数,其中一个必须叫做main,它是执行程序的入口。也就是说,当我们运行这个程序的时候,操作系统就会找到这个“主函数”开始执行。main()
的定义形式如下:
int main()
{
statements
return 0;
}
具体细分,第一行int main()
叫做函数头,下面的花括号扩起来的部分叫函数体。函数头定义了函数的名字叫main
,前面的int
表示返回值是整数类型(integer);后面的括号里面本应该写传入的参数列表,这里是空的。花括号包围的部分就是函数体,里面就是我们要执行的操作。
函数体里,每一步操作都是一个“语句”(statement),用分号结尾。我们这里的语句,执行的就是输出Hello World的操作。
std::cout << "Hello World!" << std::endl;
这是一个“表达式”。所谓表达式,一般由多个运算的对象和运算符组成,执行运算之后会得到一个计算结果。在这里,两个连在一起的小于号<<
就是一个用来输出的运算符。它的使用规则是:左边需要一个“输出流”的对象,也就是输出到哪里;右边是要输出的内容,最简单的就是一个“字符串”,需要用双引号引起来。所以std::cout << "Hello World!"
的意思就是:将“Hello World!”
这串信息,输出到cout
这个对象。cout
就是一个输出流对象,iostream
库里定义了它的功能,接收到信息之后就可以输出显示了。而cout
前面的std
是所谓的“命名空间”(namespace),主要是为了避免还有别的cout
对象重名起冲突。这里的双冒号::
也是一个运算符,叫做作用域运算符,专门指明了我们用的cout
是标准库std
中的。如果不想总用双冒号,也可以直接加上一句:
using namespace std;
这样就可以直接用cout
,不需要加std::
。输出运算符<<
得到的计算结果,还是它左边的那个输出流对象cout
。这样一来,我们就可以在后面继续写入信息信息了。所以后面的 << endl
,其实就是把endl
这个内容,又写入到cout
中输出了。这个endl
是一个“操作符”,表示结束一行,并把缓冲区的内容都刷到输出设备。
最后一行语句就是返回一个值。大多数系统中,main
的返回值是用来指示状态的。返回0表示成功,非0表示出错,具体值可以用来表示错误类型,这是由系统定义的。我们这里写了return 0
,其实不写也是可以的,默认正常运行结束就会返回0。
在C++中,有两种注释的表示。一种是单行注释,用双斜线“//”,表示以它开始的当前行是注释内容;另一种是多行注释,使用一对“界定符”(/* 和 */),在它们之间的所有内容都是注释。
#include<iostream>
/*
* 主函数
* Hello World
*/
int main()
{
// 输出一行信息
std::cout << "Hello World!" << std::endl;
return 0;
}
我们之前写的代码非常简单,实现了输出Hello World的功能。不过输出显示用的是“调试控制台”,运行完成总会显示一行额外信息,此时,我们只要更改一下VS的设置。要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。不过出现了新的问题:,当再次运行的时候,窗口一闪而过,根本看不清输出了什么。为了查看输出结果,我们还是希望把窗口保持住、不要直接退出,这可以通过在main()函数中增加一句输入语句来实现:
int main()
{
// 输出一行信息
std::cout << "Hello World!" << std::endl;
// 等待键盘输入
std::cin.get();
return 0;
}
这里的cin跟cout刚好相反,它是一个输入流对象。调用它内部的函数get(),就可以读取键盘的输入;等待键盘输入的时候,窗口就会一直开着。这里的键盘输入是以回车作为结束标志的,所以运行看到结果之后,直接敲回车就可以退出了。此时的运行结果如图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。