using (tsz. usings)
using
direktíva a C++ nyelvben egy olyan eszköz, amely megkönnyíti a névterek és típusok kezelését. Magyarul az alábbi értelemben használható:Névtér beemelése (using namespace
)
Ez a direktíva lehetővé teszi, hogy egy adott névtérben lévő elemeket névtér-prefixum nélkül használjuk.
#include <iostream>
using namespace std; // A std névtér beemelése
int main() {
cout << "Hello, world!" << endl; // Nem kell std::cout és std::endl
return 0;
}
Magyarul: Névtér használata, névtér beemelése.
Fontos megjegyzés: A using namespace
direktíva globális térben történő alkalmazása nem mindig ajánlott, mert névütközéseket okozhat.
Típusalias létrehozása (using
típusként)
A C++11-ben bevezetett using
szinonimája a typedef
-nek, és könnyebben olvasható aliasokat hoz létre.
using Szam = int; // Szam most egy alternatív név az int típusra
Szam a = 10;
Magyarul: Típusnév alias létrehozása.
Függvény név átvétele származtatott osztályba (using
kulcsszóval)
Egy osztály öröklődésekor lehetőség van a szülőosztály azonos nevű függvényeinek láthatóvá tételére a gyermekosztályban.
class Alap {
public:
void f(int) {}
};
class Szarmaztatott : public Alap {
public:
using Alap::f; // Az Alap osztály f függvénye láthatóvá válik
void f(double) {}
};
Magyarul: Szülőosztály függvényének láthatóvá tétele.
Sablon aliasok (using
sablonokhoz)
A using
segítségével sablon-aliasokat is létrehozhatunk.
template <typename T>
using Ptr = T*; // Mostantól Ptr<T> egy T* típusú mutató
Ptr<int> p; // int*
Magyarul: Sablon alias létrehozása.
Összegzés:
- using namespace
: Névtér beemelése.
- using Típusnév = MásikTípus
: Típus alias létrehozása.
- using Alap::f
: Öröklött függvények láthatóvá tétele.
- using SablonAlias = Sablon<...>
: Sablon alias létrehozása.