C ++代码澄清 - NameSpaces

时间:2013-11-07 02:54:06

标签: 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 << acme::map << endl;
    using namespace acme;
    map = 2;
    /* ** */void fun3(day d);
    std::cout << map << endl;
}

我的问题是:最后用“**”表示的行是什么?比如,他们做了什么?我在main中排除了一个已加星标的行,没有任何变化。

2 个答案:

答案 0 :(得分:0)

{
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. 
}

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

答案 1 :(得分:0)

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

例如。     void function1(int x);

如果你使用它们,那么你需要为它们添加函数定义。

例如。

void function1(int x) 
{   
cout<<x<<endl;
}

“enum”是一种将其参数初始化为整数的数据类型。 (阅读它)