MySQL Java JavaScript PHP Python HTML-CSS C-sharp C++ Go

using. Includerea spațiilor de nume și definirea aliasurilor

La citirea și afișarea datelor în temele anterioare au fost folosite obiectele std::cout și std::cin, respectiv. Acestea au fost utilizate cu prefixul std::. Acest prefix indică faptul că obiectele cout, cin, endl sunt definite în spațiul de nume std. Iar dublul două puncte :: reprezintă operatorul de domeniu de vizibilitate (scope operator), care permite să specificăm în ce spațiu de nume este definit un obiect. Fără acest prefix, aceste obiecte nu pot fi folosite implicit.

Totuși, o astfel de scriere poate părea destul de voluminoasă. În acest caz, se poate folosi operatorul using, care permite importarea obiectelor din diferite spații de nume în program.

Utilizarea operatorului using are următorul format:

using spațiu_de_nume::obiect

De exemplu, să presupunem că avem următorul program:

#include <iostream>
 
int main()
{   
    int age;
    std::cout << "Input age: ";
    std::cin >> age;
    std::cout << "Your age: " << age << std::endl;
}

Aici sunt folosite trei obiecte din spațiul de nume std: cout, cin și endl. Să rescriem programul folosind using:

#include <iostream>
using std::cin;
using std::cout;
using std::endl;
 
int main()
{   
    int age;
    cout << "Input age: ";
    cin >> age;
    cout << "Your age: " << age << endl;
}

Pentru fiecare obiect din spațiul std se definește propria expresie using. În același timp, programul va funcționa la fel ca înainte.

Definirea aliasurilor

Cuvântul-cheie using permite, de asemenea, definirea de aliasuri pentru tipuri. Acest lucru poate fi util atunci când lucrăm cu tipuri cu denumiri lungi, iar definirea unor aliasuri scurte poate reduce volumul codului. De exemplu:

#include <iostream>
 
using ullong = unsigned long long;
int main()
{
    ullong n {10234};
    std::cout << n << std::endl;
}

În acest caz, pentru tipul unsigned long long a fost definit aliasul ullong. Trebuie menționat că aceasta este definirea unui alias, și NU definirea unui nou tip.

Trebuie menționat că, pentru definirea aliasurilor în C++, poate fi folosit și stilul vechi din limbajul C, cu ajutorul operatorului typedef:

#include <iostream>
 
typedef unsigned long long ullong;
int main()
{
    ullong n {10234};
    std::cout << n << std::endl;
}