我有以下代码段:
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;
但它给出了错误:
在函数&#39; int main()&#39;:38:13:错误:聚合&#39; main():: X x&#39;具有 不完整的类型,无法定义
现场演示 - http://cpp.sh/4bm4
这里有什么问题?
我误解了什么吗?