"using"关键字在 c++ 中究竟有什么作用?
What exactly does "using" keyword do in c++?
我发现了"使用"关键字的令人困惑的事情。如果我使用类或结构进行类或结构,那么将使用同一名称空间中的函数进行操作,该函数将该类或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
相关文章:
- archive_read_support_filter_all() 有什么作用?
- 当我们为(;;) 写作时,它做了什么?for 循环中的双分号有什么作用?
- 这个递归函数有什么作用?运行时的复杂性是多少?
- DrawShadow 中的 Elevation 究竟有什么作用?
- 测试"stream >> char"有什么作用?
- "uFlags &= ~CHN_PANNING"命令有什么作用?
- GCC 的 -Wpsabi 选项究竟有什么作用?压制它意味着什么?
- int** a = new int*[n]();这个函数有什么作用?
- C++ 此函数调用之前的(void)有什么作用?
- i+=(i&-i) 有什么作用?它是便携式的吗?
- 这个size_t在 lambda 中有什么作用?C++代码
- 数组下标运算符 ([ ]) 对数组有什么作用?
- 结构之外的节点 * head 有什么作用?
- 重载括号运算符有什么作用?
- clang的"-Ofast"选项在实践中有什么作用,特别是对于与gcc的任何差异?
- std::make_unique_for_overwrite() 对 std::make_unique() 有什么作用?
- 运算符 delete[] 有什么作用?
- 下面的代码有什么作用?c++
- 这个陈述'p = I.ptr<uchar>(i);有什么作用?
- 这个嵌套的名称空间定义有什么作用