prezes.cc 1 Napisano 17 Sierpnia 2018 Udostępnij Napisano 17 Sierpnia 2018 No właśnie - Jaka jest różnica między std::cout a samym cout, oba robią to samo Cytuj Link to post Share on other sites
Mandalorian 77 Napisano 17 Sierpnia 2018 Udostępnij Napisano 17 Sierpnia 2018 (edytowane) cout znajduje się w przestrzeni nazw std.Są dwa sposoby używania cout (i to samo się tyczy jakichkolwiek słów kluczowych znajdujących się w jakiejkolwiek przestrzeni nazw):1. "std::cout"2. dołączenie linii "using namespace std" na początku pliku, następnie używanie "cout" (gdybyś spróbował użyć "cout" bez zawarcia "using namespace std" to program się nie skompiluje i dostaniesz odpowiedni błąd)Stosujesz to co ci wygodniej. Nie wiem czy w przypadku bardzo rozbudowanych projektów któreś rozwiązanie ma większą wydajność. http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Przestrzen-nazw-std/10 Edytowane 17 Sierpnia 2018 przez Mandalorian Cytuj Link to post Share on other sites
takapart 0 Napisano 23 Sierpnia 2018 Udostępnij Napisano 23 Sierpnia 2018 (edytowane) Tak jak kolega wyżej napisał, są to dwa sposoby używania cout. Dołączenie standardowej przestrzeni nazw std używając linii using namespace std. Pozwala Ci to na krótsze pisanie i używanie cout, cin, endl, itp. , bez wcześniejszego dodawania std:: przed tymi obiektami (std::cout, std::cin, std::endl, itp.). Informujesz wtedy kompilator, że wszystkie obiekty, funkcje chcesz zaczerpnąć właśnie z std. Musisz mieć jednak na uwadze, że załączasz wszystko i o ile na początku pisania małych programów nie będzie sprawiało to problemów, to później przy większych projektach, może przyczynić się to do wydajności i resposywności aplikacji. Istnieją również inne przestrzenie nazw specjalnie tworzone pod daną aplikację, czy przy tworzeniu gier i używanie using namespace std, może przysporzyć wielu problemów dla Ciebie, bo nie będziesz wiedział, której przestrzeni nazw użyłeś w danej chwili i tak samo dla kompilatora. Jeżeli pominiesz i nie użyjesz using namespace std, będziesz zmuszony do określenia z której przestrzeni nazw kompilator ma korzystać (std::cout, std::cin, std::endl). Jeżeli zapomnisz dodać std:: i użyjesz wyłącznie cout, dostaniesz komunikat od kompilatora: 'cout' was not declared in this scope Dla mnie właśnie ten sposób jest jak najbardziej prawidłowym, bo pozwala na zaznajomienie się co wchodzi w skład standardowej przestrzeni nazw std i ominięcie problemów, które wymieniłem wyżej przy późniejszej przygodzie z programowaniem. Istnieje oczywiście jeszcze jeden sposób, w sytuacji, gdy wiesz i jesteś pewien, że przy pisaniu kodu będziesz korzystał np. tylko z cin i cout, zamiast używać using namespace std; możesz skorzystać z: using std::cin; using std::cout; Różnica w powyższym zastosowaniu jest taka, że zamiast informować kompilator, że będziesz korzystał z całej biblioteki standardowej przestrzeni nazwa std (using namespace std;), określasz precyzyjnie co będzie używane. Oczywiście pomijam fakt, że już załączono standardową bibliotekę obsługującą wejście i wyjście, czyli #include <iostream> na samym początku. Edytowane 23 Sierpnia 2018 przez takapart Cytuj Link to post Share on other sites
Recommended Posts
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.