在这种情况下如何访问匿名namespace里的x?

#include "stdafx.h"
#include <iostream>
namespace
{
    int x = 1;
}
int x = 3;
int main()
{
    int x = 2;
    std::cout << ::x; //如果没有全局int x = 3, 则输出匿名namespace的x(1), 现在输出的是3
}
阅读 3k
1 个回答

無法訪問。但是你可以在int x = 3;之前,保存x = 1


namespace {
    int x = 1;
}

等同於:

namespace *unique* { /* empty body */ }

using namespace *unique*;

namespace *unique* {
    int x = 1;
}

*unique*由編譯器生成,是不可知的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题