Od zera do gier kodera - Nadal aktualny?


#1

Pierwszy przekładowy program w książce Od zera do gier kodera to :

#include

#include


void main()

{

     std::cout<<" Hurra ! To mój pierwszy program" std::endl;

     getch();

     }

[/code]

Przepisałem go i przy komplikacji wyskoczył błąd przy {

Zauważyłem też że autor nie używa using namespace std;

I moje pytanie czy ta książka jest zgodna z tymi wszystkimi Iso itp ?


(Sawyer47) #2

Chyba niezbyt dokładnie przepisałeś.

Przejrzałem pobieżnie ten kurs i wydaje się być całkiem dobry. Z dwoma wyjątkami, które już w pierwszym kodzie rzucają się w oczy. Po pierwsze void main - powinno być int main mimo wszystko, być może kiedyś taka forma była dopuszczalna, ale powinno być z int. Po drugie od początku autor korzysta z biblioteki conio, która jest niestandardowa.


(system) #3

[quote="Pioter233"] std::cout<<" Hurra ! To mój pierwszy program" std::endl; [/code] Brakuje operatora << przed std::endl. I moje pytanie czy ta książka jest zgodna z tymi wszystkimi Iso itp ? Nie istnieje żadnego kompilatora całkowicie zgodnego ze wszystkimi normami. Wiec pewnie to samo dotyczy książek. W większości książek wprost jest napisane na jakich kompilatorach podane przykłady kompilują się bez zarzutów. Zauważyłem też że autor nie używa using namespace std; Bo to jest jeden z wariantów:

#include int main() { std::cout\<\<"Hurra ! To mój pierwszy program"\< std::cin.get(); return 0; } można zamienić na: #include using namespace std; int main() { cout"Hurra ! To mój pierwszy program" cin.get(); return 0; }

Wybór należy do ciebie, co wolisz na początku raz dać using czy przed każdym cin/cout dawać std:: [/quote]


#4

No to jeszcze jedno pytanie :smiley: :

Czy po przeczytaniu nie będę miał problemów z " nowościami " ze świata C++ ?

Znaczy się czy jest więcej takich wyjątków w tej książce ?


(system) #5

Nie wiem jak w tej, nie czytałem. Ale generalnie różnice są typu:

include

include

include

include

jeden z tych czterech wariantów na pewno zadziała żeby mogłeś użyć funkcji sqrt()

albo to co nr47 powiedział, tylko że on zapomniał powiedzieć skąd to się wzięło.

Wg ostatniego standardu jeżeli użyta funkcją void main() to program zwraca do systemu wartość 0.

Problem tylko w tym że nikt nie chce sprawdzać czy ten standard jego kompilator podtrzymuje,

więc nikt tego nie używa, a doświadczeni programiści uważają za oznakę złego stylu.