首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++代码澄清- NameSpaces

C++代码澄清- NameSpaces
EN

Stack Overflow用户
提问于 2013-11-07 10:54:06
回答 2查看 56关注 0票数 0

所以我正在复习一个测试,我正在看下面的代码:

代码语言:javascript
复制
#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中的一行星号,并且没有任何变化。

EN

回答 2

Stack Overflow用户

发布于 2013-11-07 11:44:56

代码语言:javascript
复制
{
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。

票数 0
EN

Stack Overflow用户

发布于 2013-11-07 15:17:00

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

例如:空function1(int x);

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

例如:

代码语言:javascript
复制
void function1(int x) 
{   
cout<<x<<endl;
}

"enum“是一种数据类型,它将其参数初始化为整数。(请仔细阅读)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19827140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档