Typedef atslēgvārds C++ tiek izmantots, lai aizstātu esošos datu tipus, lietotāja definētus datu tipus un norādes uz jēgpilnāku nosaukumu. Typedefs ļauj standarta datu tipiem piešķirt aprakstošus nosaukumus, kas var arī palīdzēt pašdokumentēt kodu. Pārsvarā typedefs tiek izmantoti aizstājvārdiem, tikai tad, ja iepriekš definētais nosaukums ir pārāk garš vai sarežģīts, lai to rakstītu atkal un atkal. Nevajadzīga typedef izmantošana parasti nav laba prakse.
Sintakse:
nomainiet krāsu gimp
typedef>
Piemērs:
typedef std::vector vInt;>
Zemāk ir C++ programma typedef ieviešanai
C++
// C++ Program to implement typedef> #include> > using> namespace> std;> > int> main()> {> > // Now we can make more vectors by using vInt> > typedef> std::vector<> int> >vInt;>> // vec1 is a vectorof type int> > vInt v;> > > v.push_back(190);> > v.push_back(180);> > v.push_back(10);> > v.push_back(10);> > v.push_back(27);> > > for> (> auto> X : v) {> > cout << X <<> ' '> ;> > }> > > return> 0;> }> |
>
>Izvade
190 180 10 10 27>
Typedef lietojumprogrammas C++ valodā
- Typedef C++ var izmantot, lai aizstātu iepriekš definētus datu tipus ar gariem nosaukumiem.
- To var izmantot ar STL datu struktūrām, piemēram Vektori, virknes, kartes utt.
- typedef var izmantot arī ar masīviem.
- Mēs varam izmantot typedef ar normālas norādes kā arī funkciju norādes .
Typedef izmantošana ar iepriekš definētiem datu tipiem
Typedef var izmantot, lai aizstātu iepriekš noteiktus datu tipus, piemēram int, char, float, un to atvasinājumi, piemēram garš, īss, parakstīts, un neparakstīts. Pēc tam jauno aizstājvārdu var izmantot, lai izveidotu jaunus attiecīgo tipu mainīgos.
Sintakse:
typedef>
Piemērs:
C++
// C++ for using typedef with predefined data types> #include> > using> namespace> std;> > int> main()> {> > // ulli can now be used for making more> > // unsigned long long int type variables> > typedef> unsigned> long> long> int> ulli;> > // ulli used to make variables> > ulli a{ 1232133 };> > cout << a;> > return> 0;> }> |
>
>Izvade
1232133>
Typedef izmantošana ar STL datu struktūrām
typedef var izmantot arī ar STL datu struktūras, patīk Vektori, virknes, kartes utt. Ja mēs esam viens no tiem, kas nevēlas importēt visu std nosaukumvieta mūsu kodā mums atkal un atkal jāraksta std::vector, std::string utt. Tādējādi typedef izmantošana šajā gadījumā var būt ātrs veids, kā to novērst un saglabāt mūsu kodu tīru un lasāmu.
Sintakse:
typedef>
Piemērs:
C++
// C++ Program to display usage for typedef with vectors> #include> #include> > int> main()> {> > // Now we can make more vectors by using vInt> > typedef> std::vector<> int> >vInt;>> > vInt vec1{ 1, 2, 3, 6, 2, 1 };> > > // Outputting the vector> > for> (> int> i = 0; i std::cout << vec1[i] <<' '; } return 0; }> |
>
>Izvade
1 2 3 6 2 1>
Typedef izmantošana ar masīviem
typedef var izmantot ar masīviem, lai izveidotu jaunākus masīvus (tāpat kā izmantojot tos ar STL datu struktūrām). Mēs varam viegli izveidot jaunus masīvus vai izveidot masīvu masīvus, izmantojot typedef un masīvus, vienlaikus saglabājot mūsu kodu lasāmu, nemanāmi.
Sintakse:
typedef [ ]>
Pēc šī < alias_name> tagad var izmantot, lai izveidotu masīvus tipa < datu_veids> un izmērs .
C++
// C++ program to show use of typedef with arrays> #include> using> namespace> std;> > int> main()> {> > > typedef> int> arr[3];> > > // Making new 1D array> > > arr array1{ 1 , 1, 1};> > > > cout <<> 'Array output: '> > <<> '
'> ;> > for> (> int> i = 0; i <3; i++) {> > cout << array1[i] <<> ' '> ;> > }> > cout <<> '
'> ;> > > // Making new 2D array> > // Matrix is an array of arrays with size> > // ( 3 X 3 )> > arr matrix[3];> > > cout <<> 'Matrix output: '> > <<> '
'> ;> > > for> (> int> i = 0; i <3; i++) {> > for> (> int> j = 0; j <3; j++) {> > // Initializing the matrix> > matrix[i][j] = i * j;> > }> > }> > > // Outputting the matrix> > > for> (> int> i = 0; i <3; i++) {> > for> (> int> j = 0; j <3; j++) {> > cout << matrix[i][j] <<> ' '> ;> > }> > cout <<> '
'> ;> > }> > > return> 0;> }> |
>
>Izvade
Array output: 1 1 1 Matrix output: 0 0 0 0 1 2 0 2 4>
Typedef izmantošana ar rādītājiem
Typedef var izmantot arī ar rādītājiem. Lai ātrāk izveidotu norādes, kā arī lai kods būtu lasāms. Mēs varam tos izmantot gan ar datu rādītājiem, gan ar funkciju rādītājiem.
(i) Izmantošana ar datu rādītājiem:
Tālāk ir sniegta sintakse, piemērs un pirmkods typedef izmantošanai ar datu rādītājiem
Sintakse:
typedef *>
Piemērs:
kolekcija java
typedef int* iPtr; iPtr pointer1, pointer2;>
Zemāk ir programma typedef lietošanai ar datu rādītājiem.
C++
// C++ Program to showcase the use of typedef> // with data pointer> > #include> using> namespace> std;> > int> main()> {> > int> a = 10;> > int> b = 20;> > // iPtr can now be used to create new pointers of type> > // int> > typedef> int> * iPtr;> > > iPtr pointer_to_a = &a;> > iPtr pointer_to_b = &b;> > > cout <<> 'a is: '> << *pointer_to_a <<> '
'> ;> > cout <<> 'b is: '> << *pointer_to_b <<> '
'> ;> > > return> 0;> }> |
>
>Izvade
a is: 10 b is: 20>
(ii) Lietošana ar funkciju rādītājiem:
Tālāk ir norādīta sintakse, piemērs un kods, lai parādītu typedef lietojumu ar funkciju rādītājiem.
Sintakse:
typedef < return_type>(*< alias_name>)(< parameter_type>,< parameter_type>, .... );>
Piemērs:
typedef int (*fun_ptr)(int, int); fun_ptr new_ptr = &function;>
Šeit jautro ptr tagad var izmantot, lai izveidotu vairāk funkciju rādītāju. Tas būs skaidrāks tālāk esošajā kodā.
C++
#include> > // Normal pointer to a function> int> (*func_ptr1)(> int> ,> int> );> > // Using typedef with pointer to a function> typedef> int> (*func_ptr2)(> int> ,> int> );> > // Function to multiply two numbers> int> product(> int> u,> int> v) {> return> u * v; }> > int> main(> void> )> {> > func_ptr1 = &product;> > > // Using typedefed function pointer for creating new> > // function pointer 'new_func'> > func_ptr2 new_func_ptr = &product;> > > // Using normal pointer to a function> > int> x2 = (*func_ptr1)(3, 2);> > > // Using the new function pointer> > int> x1 = (*new_func_ptr)(2, 4);> > > std::cout << x1 << std::endl;> > std::cout << x2 << std::endl;> }> |
>
>Izvade
8 6>
Šeit func_ptr1 ir parasta funkcijas rādītājs, savukārt func_ptr2 ir typedef funkcijas rādītājs, un to var izmantot, lai izveidotu vairāk funkciju rādītāju, izmantojot 2 veselus skaitļus kā argumentus un ar atgriešanās veidu int.
Piezīme: func_ptr2 vairs nevar izmantot kā neatkarīgu funkciju rādītāju, un to var izmantot tikai jaunu funkciju rādītāju izveidošanai, kas var norādīt tikai uz funkciju, kas atgriež int un kā parametrus izmanto divus int veidus.