Ho trovato una cosa confusa sulla parola chiave "using". Se faccio uso di una classe o di una struct, allora non sarà necessario fare uso di funzioni nello stesso spazio dei nomi che prendono quella classe o struct come argomento. Come i codici qui sotto.Che cosa fa esattamente la parola chiave "using" in 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;
}
ho pensato che non dovrebbe essere consentito di utilizzare TestFunc(), perché io uso solo la parola "con" per Testdata. Tuttavia, questi codici funzionano bene.
Potrebbe dirmi perché funziona così?
[argomento Lookup Dependent] (http://en.cppreference.com/w/cpp/language/adl). – BoBTFish
@BoBTFish Vedo. Grazie mille. –