您的位置:首页 - HT - 正文
使用Visual Studio 编写第一个C++应用程序
打开Visual Studio,新建项目:


在弹出对话框点击下一步后:


HovertreeHelloCpp.cpp 文件的代码如下:
// HovertreeHelloCpp.cpp : 定义控制台应用程序的入口点。

#include <iostream>

int main()
{
std::cout << "Hello World! hovertree.com" << std::endl;
return 0;
}
运行效果:

#include 是一个预处理器编译指令。预处理器编译指令是向预处理器发出的命令,总是以磅字符#开头。

预处理器发现 #include 指令后,就会寻找指令后面<>中的文件名,并把这个文件的内容包含到当前文件中。被包含文件中的文本将替换源代码文件中的#include 指令, 就像你把被包含文件中的全部内容键入到源文件中的这个位置一样。

#include <> 使用尖括号通常用于包含标准头文件。iostream是一个标准头文件。
#include "" 使用引号来包含自己创建的头文件

#include<iostream>是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件。iostream是指iostream库。iostream的意思是输入输出流,直接点说就是in(输入) out(输出) stream(流),取in、out的首字母与stream合成。
iostream 库的基础是两种命名为 istream 和 ostream 的类型,分别表示输入流和输出流。流是指要从某种 IO 设备上读出或写入的字符序列。术语“流”试图说明字符是随着时间顺序生成或消耗的。

预处理器编译指令的后面是程序的主体 -- main()函数,C++程序的执行总是从这里开始。声明main()时,总是在它前面加上int,这是一种标准化约定,表示main()函数的返回类型为整数。

cout (控制台输出),是将文本(Hello World! hovertree.com)显示到控制台(在屏幕可看到)的语句。cout是名称空间std定义的一个流,(因此这里使用了std::cout),这里使用流插入运算符<<将文本放Hello World! hovertree.com到这个流中。std::endl用于换行,将其插入流中相当于插入回车。每次需要将新实体插入流中时,都使用了流插入运算符<<

在这个程序中,使用的是std::cout,而不是cout,原因在于cout位于标准(std)名称空间中。名称空间也就是命名空间。

C++ 命名空间
假设这样一种情况,当一个班上有两个名叫 Zara 的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等。

同样的情况也出现在 C++ 应用程序中。例如,您可能会写一个名为 xyz() 的函数,在另一个可用的库中也存在一个相同的函数 xyz()。这样,编译器就无法判断您所使用的是哪一个 xyz() 函数。

因此,引入了命名空间这个概念,专门用于解决上面的问题,它可作为附加信息来区分不同库中相同名称的函数、类、变量等。使用了命名空间即定义了上下文。本质上,命名空间就是定义了一个范围。

定义命名空间
命名空间的定义使用关键字 namespace,后跟命名空间的名称,如下所示:
namespace namespace_name {
// 代码声明
}
为了调用带有命名空间的函数或变量,需要在前面加上命名空间的名称,如下所示:
name::code;  // code 可以是变量或函数