Znalazłem mylące zdanie na temat słowa kluczowego "używanie". Jeśli użyję klasy lub struktury, nie będzie konieczne korzystanie z funkcji w tej samej przestrzeni nazw, które przyjmują tę klasę lub strukturę jako argument. Podobnie jak kody poniżej.Co dokładnie robi słowo kluczowe "using" w języku C++?
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;
}
Pomyślałem, że nie powinienem móc używać testFunc(), ponieważ używam tylko słowa kluczowego "using" dla testData. Jednak te kody działają dobrze.
Czy możesz mi powiedzieć, dlaczego to działa w ten sposób?
[argument Zależnie wyszukiwania] (http://en.cppreference.com/w/cpp/language/adl). – BoBTFish
@BoBTFish Rozumiem. Dziękuję bardzo. –