0
我正在写有内容的库:C++:是否当前命名空间覆盖其他命名空间
namespace david {
typedef enum {
BAR
} CommonEnum;
class Foo {
void fooBar() {
std::cout << BAR << std::endl;
}
}
}
,并假设用户写文件
typedef enum {
BAR = 1
} CommonEnum;
#include <david.h>
Foo myFoo();
myFoo.fooBar();
什么将被打印出来?如果0
将被打印,是可靠?我知道我可以在david::Foo
前加上BAR
的前缀,使其成为david::BAR
,这就可以肯定地回答这个问题(这是我现在正在做的),但它变得非常冗长,我试图坚持80这意味着我的代码越来越难以阅读。
*“会打印什么?”* - 回答问题:尝试此操作时打印了什么?这是唯一的问题,还是你在寻找标准中的引用来消除你所怀疑的所有疑问,即你所见证的是明确的? – WhozCraig 2014-09-27 02:55:15
它首先会抱怨'Foo'定义中缺少分号,然后它会告诉你''Foo'没有在这个范围内声明“,然后,当你解决这个问题时,”请求成员'fooBar'在' myFoo',它是非类类型的'david :: Foo()'“,最后它会抱怨'fooBar'是私有的。 – 2014-09-27 04:07:17