C++ C++;代码澄清-名称空间

C++ C++;代码澄清-名称空间,c++,C++,因此,我正在复习一个测试,并在这里查看以下代码: #include<iostream> using namespace std; namespace acme { int map; /* ** */enum day{one,two}; /* ** */void fun1(day d); int cout; ** } void main(){ acme::map = 1; /* ** */void fun2(acme::day d); cout <<

因此,我正在复习一个测试,并在这里查看以下代码:

#include<iostream>
using namespace std;
namespace acme
{
int map;
/* ** */enum day{one,two};
/* ** */void fun1(day d);
int cout; **
}
void main(){
    acme::map = 1;
    /* ** */void fun2(acme::day d); 
    cout << acme::map << endl;
    using namespace acme;
    map = 2;
    /* ** */void fun3(day d);
    std::cout << map << endl;
}
#包括
使用名称空间std;
名称空间顶点
{
int图;
/****/枚举日{1,2};
/****/void fun1(第d天);
国际法院**
}
void main(){
acme::map=1;
/****/void fun2(顶点:d天);
库特

我认为这只是为了说明名称空间是如何阻止事物成为全局的。因此,如果它们位于不同的名称空间中,则可以使用相同名称的int。

您注意到的所有以“void”开头的行都是函数声明

例如。 无效函数1(int x)

如果使用它们,则需要向它们添加函数定义

例如

void函数1(int x)
{   

coutIt看起来像“**”是一个语法错误。我无法编译那些最后出现的星号的代码。它们称为语法错误。你应该删除它们。对不起,我添加星号是为了记录我所说的行。位置不正确,对不起。修复了位置。我只需要知道这些行的用途。这些是函数原型。不要然而,我们很清楚他们在
main
中正在做什么。
{
int map; // an int named map.
/* ** */enum day{one,two}; // the words one and two that can be used like a type.
/* ** */void fun1(day d); // An empty function.
int cout; // - I have no idea why anyone would do this. Basically it an int named cout. 
}
void function1(int x) 
{   
cout<<x<<endl;
}