"using"关键字在 c++ 中究竟有什么作用?

What exactly does "using" keyword do in c++?

本文关键字:什么 作用 究竟 using 关键字 c++      更新时间:2023-10-16

我发现了"使用"关键字的令人困惑的事情。如果我使用类或结构进行类或结构,那么将使用同一名称空间中的函数进行操作,该函数将该类或struct作为参数。像下面的代码一样。

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工作方式正确。

但是您忘记了一件事:与参数有关的查找。编译器可以通过提供的test参数看到testFunc

请参阅http://en.cppreference.com/w/cpp/language/adl