 |
Coders' city Nasza pasja to programowanie!
|
| Zobacz poprzedni temat :: Zobacz następny temat |
| Autor |
Wiadomość |
biernik

Dołączył: 06 Wrz 2008 Posty: 1024 Skąd: 63°59'37''N 22°37'58''W
|
Wysłany: Sro Lut 08, 2012 4:04 pm Temat postu: [C++] Książki do C++11 |
|
|
Witam Czy są już jakieś dobre książki które omawiają C++ z uwzględnieniem nowego standardu? Kiedyś gadałem w C++ i potrzebuję zacząć od nowa. Szukam jakiejś dobrej książki która mi w tym pomoże. Najlepiej, żeby nie było to coś dla ludzi którzy nigdy nie programowali, i żeby omawiało jak najnowszą wersję języka. Znacie coś godnego polecenia?
Pozdrawiam. _________________ I like cheese. |
|
| Powrót do góry |
|
 |
|
|
ram_techen
Dołączył: 05 Lut 2009 Posty: 288
|
Wysłany: Sro Lut 08, 2012 4:23 pm Temat postu: |
|
|
| Jednoznacznie Symfonia C++ Jurka Grębosza. Nie wiem, czy jest jeszcze drukowana, ale ostatnia wersja jest chyba najaktualniejsza pod względem standardu (?) Sam ją czytam po raz drugi i polecam książkę. |
|
| Powrót do góry |
|
 |
Hashedone
Dołączył: 23 Sie 2008 Posty: 853
|
Wysłany: Sro Lut 08, 2012 4:57 pm Temat postu: |
|
|
Nie znajdziesz w tym momencie nic aktualnego, bo standard jest zbyt nowy. Ucz się ostatniego standardu, a jeśli chodzi o nowy to czytaj oficjalne dokumenty (reference języka jest imho dobrym pomysłem). _________________ PWr, WPPT, Informatyka "Two or more? - use a for", Dijkstra |
|
| Powrót do góry |
|
 |
ram_techen
Dołączył: 05 Lut 2009 Posty: 288
|
Wysłany: Sro Lut 08, 2012 5:06 pm Temat postu: |
|
|
@Hashedone : Co do reference języka, masz na myśli np. stronę http://www.cplusplus.com/ ? |
|
| Powrót do góry |
|
 |
biernik

Dołączył: 06 Wrz 2008 Posty: 1024 Skąd: 63°59'37''N 22°37'58''W
|
Wysłany: Sro Lut 08, 2012 5:14 pm Temat postu: |
|
|
No za draft nowego standardu się wziąłem, ale myślałem o dopełnieniu tego czymś mniej technicznym. Skoro nie ma jeszcze nic "na czasie" co polecacie w takim razie? "Symfonia"? co jeszcze? Ze starych książek o C++ została mi ta Co myślicie, przeterminowana czy jeszcze warto przeczyać? _________________ I like cheese. |
|
| Powrót do góry |
|
 |
ram_techen
Dołączył: 05 Lut 2009 Posty: 288
|
|
| Powrót do góry |
|
 |
arturooo3 Moderator
Dołączył: 04 Lis 2006 Posty: 1100 Skąd: Kraków
|
Wysłany: Sro Lut 08, 2012 6:13 pm Temat postu: |
|
|
Ostatnie wydanie Symfonii C++ traktuje o standardzie 03 - C++11/C++0x jak kto zwał raczej nie zmienia a dodaje. Przypomnij sobie C++ a potem ewentualnie rozwiń wiedzę o nowy standard. Tylko nie zdziw się, że wiele smaczków może jeszcze w kompilatorach nie działać ;).. _________________ Moje portfolio: agdanski.com C++ Reference C++ Reference wiki |
|
| Powrót do góry |
|
 |
marcin_an Site Admin
Dołączył: 26 Maj 2005 Posty: 17278 Skąd: z drugiej strony Kabla
|
Wysłany: Sro Lut 08, 2012 6:59 pm Temat postu: |
|
|
Trochę jednak zmienia. Nie mówię nawet o wywaleniu throw z deklaracji funkcji, auto_ptr i trochę z nagłówka functional. Ponieważ poszerzyły się możliwości, przestają działać pewne ograniczenia, które uniemożliwiały stosowanie pewnych konstrukcji, a teraz zapewne stana się one normą. C++ otrzymał prawdziwe stałe (constexpr), więc sztuczka ze static const to już przeszłość. Jest pętla for "po wszystkim", która zastępuje starego fora w większości typowych przypadków. Pojawiły się inicjalizatory dla klas i referencja do modyfikowalnej r-wartości, więc w tę stronę będzie szła inicjalizacja, zamiast zabawy z tworzeniem obiektu i potem ustawianiem watości albo jakimiś obiektami pośrednimi, dodatkowymi funkcjami i podobnymi rozwiązaniami z zewnętrznych bibliotek (vide Boost.Assign). Jest nowa stała reprezentująca wskaźnik NULL, więc nie będzie już tego makra czy cargo-cult programmingu używającego ciągu 0L, "żeby nie używać makr". Wchodzą słowa kluczowe final, override i auto, a default oraz delete otrzymują dodatkową funkcję w innych niż zwykle kontekstach. Weszły literały UTF-8, a to kodowanie staje się powoli standardem (przynajmniej poza podwórkiem Microsoftu). Mamy wyrażenia regulane, lambdę i domknięcia, normalne bindowanie, przekazywanie wywołania do innego konstruktora. Zapis list<vector<int>> przestaje być błędem składniowym. Składnia trzykropka przestaje być do czegokolwiek potrzebna.
Tak więc, chociaż z technicznego punktu widzenia zmian jest niewiele, prawdopodobnie sporo zmieni się w stylu programowania. Dlatego wątpię, by przesiadka z C++03 na C++11 była tylko kwestia douczenia się nowych składni. Jeżeli ktoś programował w przynajmniej kilku innych językach i jest na bieżąco z trendami, to nie powinien mieć problemów. W przeciwnym przypadku będzie trzeba czekać na książkę, której niestety jeszcze brak.
Ponieważ część nowych rzecz w bibliotece standardowej pochodzi z Boosta, można wspierać się ichnią dokumentacją. Nie daje to - oczywiście - pewności powodzenia, bo trochę pozmieniano, ale z braku innych źródeł to jest chyba najlepszym możliwym.
Oczywiście należy tutaj położyć nacisk na to, co powiedział przedmówca: nie liczyłbym, że wszystko będzie już działało pod każdym kompilatorem. Główni producenci starają się nie zostawać w tyle, ale nawet w naszych czasach można na wielu, wielu maszynach spotkać przedotopowe narzędzia, które nawet C++03 jeszcze nie wspierają. Największym problemem, jak zwykle, pozostaje czynnik ludzki ;). _________________ Matematyka to taki twór, który pozwala opisać sokowirówkę jako urządzenie pobierające ujemne odpadki i produkujące z nich sok. "Lameria atakuje" | RTFM | UMLet - edytor UML inaczej | Wykłady ks.Pawlukiewicza |
|
| Powrót do góry |
|
 |
ram_techen
Dołączył: 05 Lut 2009 Posty: 288
|
Wysłany: Sro Lut 08, 2012 7:10 pm Temat postu: |
|
|
| marcin_an napisał: | | Jest pętla for "po wszystkim", która zastępuje starego fora w większości typowych przypadków |
Interesujące, mógłbyś nieco rozpisać się na ten temat, bądź dać link do konkretnego przykładu ? |
|
| Powrót do góry |
|
 |
marcin_an Site Admin
Dołączył: 26 Maj 2005 Posty: 17278 Skąd: z drugiej strony Kabla
|
Wysłany: Sro Lut 08, 2012 7:16 pm Temat postu: |
|
|
| Kod: |   #include <iostream>
  #include <vector>
  #include <cstdlib>
  
  int main()
  {
  ::std::vector<int> data = {10, 20, 30, 40, 50, 60};
 
  for (auto i : data)
  {
  ::std::cout << i << "\n";
  }
 
  return EXIT_SUCCESS;
  }
  
|
_________________ Matematyka to taki twór, który pozwala opisać sokowirówkę jako urządzenie pobierające ujemne odpadki i produkujące z nich sok. "Lameria atakuje" | RTFM | UMLet - edytor UML inaczej | Wykłady ks.Pawlukiewicza |
|
| Powrót do góry |
|
 |
|
|
Możesz pisać nowe tematy Możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Możesz dodawać załączniki na tym forum Możesz pobierać pliki z tego forum
|
 Debug: strone wygenerowano w 0.12229 sekund, zapytan = 9
|