我有以下代码片段:
namespace A {
class X {
X()
{
std::cout<< " I am here in Constructor";
}
};
}
namespace B
{
void X(int)
{
std::cout << " I am in a function";
};
}
using A::X;
using B::X;
void f() {
X(1); //Will call B::X(int) func
}
int main()
{
f();
class X x;
return 0;
}
以下语句根据第 3.3.10 节隐藏类 A::X
using A::X;
using B::X
但是应该使用 Elaborated 类型说明符访问类,并且以下语句应该完美地创建一个对象:
class X x;
但它给出了错误:
在函数“int main()”中:38:13:错误:聚合“main()::X x”类型不完整,无法定义
现场演示 - http://cpp.sh/4bm4
这里有什么问题??
我是不是误会了什么??