关于 "using" 关键字,我发现了一个令人困惑的问题。如果我使用一个类或结构体,那么在同一命名空间中使用以该类或结构体作为参数的函数就不再必要。就像下面的代码一样。
namespace A
{
struct testData
{
int x;
};
int testFunc(testData data)
{
return data.x;
}
}
#include <cstdio>;
using A::testData;
int main()
{
testData test = { 1 };
printf("%d", testFunc(test));
return 0;
}
我原本认为我不能使用testFunc(),因为我只在testData中使用了"using"关键字。然而,这些代码完全可以正常运行。
您能否告诉我为什么会这样工作?