Repetytorium.pdf

(136 KB) Pobierz
Microsoft PowerPoint - Repetytorium
Własne przestrzenie nazw
} Przestrzeń nazw
słowa kluczowego
namespace ,
#include <iostream>
ograniczając zawartość
namespace HelloWorld
{
klamrami.
} Najczęściej uŜywaną
void hello ()
{
jest standardowa
std :: cout << "Hello World!" <<
std :: endl ;
przestrzeń nazw std
} MoŜna na przykład
}
}
stworzyć przestrzeń
nazw HelloWorld
int main ()
{
zawierającą funkcję
hello() :
HelloWorld :: hello ( ) ;
return 0 ;
}
tworzymy za pomocą
440090190.007.png 440090190.008.png
Standardowa przestrzeń nazw
} Zobaczmy przykład:
#include <iostream>
int main ( )
{
}
std :: cout << "Podaj dwie liczby a i b" << std :: endl ;
int a, b ;
// wypisujemy "a:" na wyjście i czekamy na a
std :: cout << "a:" ;
std :: cin >> a ;
// wypisujemy "b:" na wyjście i czekamy na b
std :: cout << "b:" ;
std :: cin >> b ;
// wypisujemy sumę tych dwóch liczb
s td :: cout << "a+b=" << a + b << std :: endl ;
return 0 ;
440090190.009.png 440090190.010.png
Standardowa przestrzeń nazw
} Nasz przykład z instrukcją using:
#include <iostream>
#include <string>
using namespace std ;
int main ( )
{
string imie, email, informacja;
// wczytujemy imię
cout << "Podaj swoje imie: " ; cin >> imie ;
// wczytujemy email
cout << "Podaj swój email: " ; cin >> email ;
informacja = imie + " (" + email + " )" ; // suma napisów
cout << "Witaj " << informacja << endl ;
informacja + = " czyta ten napis" ;
cout << informacja << endl ;
return 0 ;
}
440090190.001.png 440090190.002.png
Operator static_cast
} Przykład poprawnego uŜycia
#include <iostream>
int main () {
int liczba = 5, liczba2 = 2 ;
std :: cout << "5/2 int(bez rzutowania): " << lic zba / liczba2
<< std :: endl ;
std :: cout << "5/2 float(static_cast): " <<
static_cast < float> (liczba) /static_cast<float> (liczba2)
<< std:: endl;
return 0 ;
}
#include <iostream>
int main () {
std :: string str = "ciąg" ;
std :: cout << "string --> char: " << static_cast < char > ( str ) <<
std ::endl ;
return 0;
}
} Przykład niepoprawnego uŜycia – string zrzutowany na
niekompatybilny typ char
440090190.003.png 440090190.004.png
Operator reinterpret_cast
} Operator ten słuŜy do zmiany typu wskaźników .
} Potrzebny jest w sytuacji gdy nie moŜe zajść konwersja
niejawna
} Jego działanie jest identyczne jak dla starego typu rzutowania
} Wprowadzony został po to, aby rzutowanie mogło być łatwo
odnalezione w tekście
int *wsk_int1, *wsk_int2;
double *wsk_double;
wsk_int1 = wsk_int2; // bezproblemowo
// wsk_int1 = wsk_double; // błąd
wsk_double = reinterpret_cast < double *>(wsk_int1); //nowy styl
wsk_double = ( double *)wsk_int1; //stary styl
440090190.005.png 440090190.006.png
Zgłoś jeśli naruszono regulamin