Jak tam Fasadin, kiedy kolejna część? :)

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
nastepna lekcja mam nadzieje ze powjawi się w przeciagu tygodnia.
W tym momencie poprawiam wcześniejsze lekcje (stylistyka, gramatyka, dodatkowe informacje). Wstęp powinienem skończyć do 2 godzin (chce dodać jeszcze zrzuty ekranu, żeby było jeszcze lepiej)
Ciesze się, że ludzie są zainteresowani kursem. Także na pewno nie mam zamiaru go zostawiać.

tak że
, a kiedy także
; Może sam coś skrobnę? :P

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
Wstęp poprawiony.
- Poprawiono stylistykę oraz gramatykę.
- Dodano link do konfiguracji flagi C++14 gdyby ktoś nie miał tej opcji w swoim kompilatorze.
- Poprawiono ogólnie formatowanie tekstu (przynajmniej mi się wydaje delikatnie lepszy).
Zastanawiałem się nad dodaniem screenów z instalacji/konfiguracji. Jednak doszedłem do wniosku, że są zbędne.
Jeżeli ktoś chciałby mieć do kursu z poziomu "Autora" (osoba która może zmieniać i poprawiać tekst) to dajcie mi znać ;) Każda pomoc się przyda.

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
Drugi post poprawiony. Piszę jedynie po to by informować, że coś z kursem się dzieje

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
Dodałem jeszcze do poprzedniej troszkę wyjaśnienia o kompilacji (w wstępie)
Trzecia lekcja poprawiona
- poprawiono gramatykę, stylistkę.
- dodano gwiazdki tam gdzie były wymagane
- dodano link do rule of three/five/zero jako ciekawostkę.

we wstępie
lub na wstępie
;)

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
trochę spamuje. Mam nadzieje, że dużo osób nie obserwuje tematu to nie dostanie dużo powiadomień :)
Poprawiono kolejną lekcje.
- Poprawa stylistyki/gramatyki
- Dodano gwiazdki w brakujących miejscach.

- Rejestracja:ponad 11 lat
- Ostatnio:ponad 4 lata
- Postów:2442
@fasadin przy takiej ilości tekstu dobrze byłoby też przerzucić to do jakiejś innej formuły. Przewijanie całości żeby dojść do spisu treści się nie sprawdza. Poza tym dobrze byłoby porozbijać to na rozdziały zamiast trzymać wszystko napisane ciągiem, w dodatku od najnowszego wpisu na samej górze. Człowiek, który to czyta musi przewijać z dołu do góry co jest nienaturalne.

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
Lekcja 4 poprawiona
- Zmieniono literówki/gramatyke/stylistykę
- Dodano listę dostępnych typów danych oraz zmieniłem formatowanie przy tym by było bardziej czytelne
- Dodano więcej kroków co sie dzieje w hello world
- Dodano gwiazdki w niektórych miejscach
- Rejestracja:ponad 9 lat
- Ostatnio:około miesiąc
- Postów:308
Jedna uwaga.
#pragma once
działa tylko na visual c++. Lepiej zastosować #ifndef... Chyba, że się mylę.

#pragma once
działa na każdym szanującym się kompilatorze - inna sprawa, że powinno się korzystać z dyrektyw define
oraz ifndef
:-P http://gcc.gnu.org/onlinedocs/gcc-2.95.3/cpp_1.html sekcja 1.3.4
.

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
oczywiscie ze sie mylisz :)
#pragma once
https://en.wikipedia.org/wiki/Pragma_once
jedynie w kompilatorze
Solaris Studio C/C++
nie ma pragma once
- Rejestracja:ponad 9 lat
- Ostatnio:około miesiąc
- Postów:308
Sorki . Nie zrozumieliśmy się. Ja piszę na c++ Builder 6. Tam są tylko:
#pragma alignment
#pragma anon_struct
#pragma argsused
#pragma checkoption
#pragma codeseg
#pragma comment
#pragma defineonoption
#pragma exit
#pragma hdrfile
#pragma hdrstop
#pragma inline
#pragma intrinsic
#pragma link
#pragma message
#pragma nopushoptwarn
#pragma obsolete
#pragma option
#pragma pack
#pragma package
#pragma resource
#pragma startup
#pragma undefineonoption
#pragma warn
Inne przechodzą, ale są ignorowane.
Reczywiście ta dyrektywa przejdzie na Borlandzie, ale od XE3. Po co mi taki kombajn?
Ale szczerze ciekawy kurs. Po nowemu.


Nie jestem polonistą, ale kilka rzeczy rzuciło mi się w oczy (odnośnie kursu).
Proszę się nie obrażać ;)
[0. Wstęp]
- "Nie masz się co martwić" -> Nie martw się
- "Co poprzez to rozumiem" -> Co przez to rozumiem?
- "by coś móc robić" dwa czasowniki obok siebie -> by móc coś robić (nie" możemy coś", tylko "robimy coś")
Warto, aby ktoś przejrzał ten tekst, pod względem stylistycznym. Pozwoli to łatwiej "wbijać się" w treść i sens.

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
Poprawione uwagi dodatkowo następna lekcja jest już dostępna. Piszę kolejną.
Postaram się napisać w tym tygodniu o wskaźnikach oraz tablicach.
W rozdziale o wskaźnikach wyjaśnię bardzo krótko koncepcje wskaźników oraz new/delete. Od razu przęjdę do smart pointerów. Na koniec dam link dla zainteresowanych do linka gwyna, który dużo precyzyjniej i dogłębniej wyjaśnia wskaźniki.
(tutaj part 1, czesci jest 9)
W rozdziale o tablicach napiszę projekt typu dziennik. Pokaże, dlaczego tablice są złe oraz czemu std::vector jest dużo lepszym wyborem.
Jak zawsze każdy feedback mile widziany :)



- Rejestracja:ponad 9 lat
- Ostatnio:około miesiąc
- Postów:308
Nie no musiałby mieć mniej niż 14 lat. Od premiery BCB 6 wyszło już kilka nowych standardów C++, więc dobrze by było zmienić środowisko. Serio.
Faktycznie, trzeba zmienić, ale na jaki? Duży wybór. Nie mówcie xe8, bo takiego kombajnu nie chcę. Nie programuję zawodowo. A jeśli chodzi o tablice, większość języków ich używa. Chyba trochę udziwniacie. Można używać vector i array, ale po co, i czy to jest jeszcze C++?

czy to jest jeszcze C++?
- dopiero wtedy to jest C++, a nie dziwny twór na pograniczu C i C++. I jeśli pomyślisz o takiej tablicy np. z Javy, to bliżej jej do vector niż C++-owego tworu z nawiasami kwadratowymi.



- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
skoro chcesz C++ to zapoznaj sie z Qt, a jeżeli nie C++ to zapoznaj sie z C# i WPF
Nie programuję zawodowo
A jeśli chodzi o tablice, większość języków ich używa
Żaden programista zawodowo nie będzie się bawił w tablicę gdy może użyć klasy, która rozszerzaniem tablicy (bo pod std::vectorem masz tablice) zajmie się klasa.
Można używać vector i array, ale po co, i czy to jest jeszcze C++?
Przede wszystkim to jest C++, a nie C z klasami. A po co to używać? Teoretycznie możesz iść polować swoje dania (np szczury) i później rozpalić ognisko i je przyrządzić. Oczywiście sól też musisz sam wydobyć z kopalni... Ale czy jest sens?
A tak poważniej. Programista ma tworzyć oprogramowanie, a nie walczyć z językiem. Dlatego chociażby powstał Boost czy Qt. Bo pewnych rzeczy nie ma w standardowej biblotece C++. Jeżeli jest narzędzie które ułatwia pracę programiście to powinien je użyć. Nie ma sensu odkrywać koła na nowo
Bo w sumie z Twojego posta wynika, że powinniśmy pisać w kodzie maszynowym (czyli 1011100110) bo asm to też ułatwienie i czy asm to jest jeszcze programowanie? ;)

- Rejestracja:ponad 13 lat
- Ostatnio:około 6 godzin
- Lokalizacja:Tuchów
- Postów:12167
@xenix33 - to że coś zostało sprowadzone do wywołania jednej funkcji/metody, nie oznacza, że jest szybsze - może być nawet znacznie wolniejsze; Ilością kodu nie określa się jego efektywności;
@fasadin - wskaźniki to dość trudny temat dla początkujących, więc przyda się go dobrze omówić; Żeby potem każdy mógł tak jak ja twierdzić, że pointery to piękna sprawa :D



- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
bardzo robocza wersja (zapewne merytorycznie sa bledy w kilku miejscach) postaram sie wieczorem to przeredagowac popatrzec na zrodla i gdzies jutro wrzucic


Przeważnie są to zmienne, ale też może być to funkcja!
z tego zdania wynika, że wskaźnik może być funkcją?


- Rejestracja:około 10 lat
- Ostatnio:około 9 godzin
- Lokalizacja:Łódź
- Postów:1402
Z uwag - to "mądre wskaźniki" brzmi tak średnio - raczej sprytne. Druga rzecz na pewno nie pointer'ami, a pointerami - apostrof jest tu błędem.


- Rejestracja:ponad 13 lat
- Ostatnio:około 6 godzin
- Lokalizacja:Tuchów
- Postów:12167
Wskaźnik to takie coś co wskazuje na cos innego.
@fasadin - przeginasz z tą prostotą :D
Wskaźnik to nic innego jak liczba, a ta liczba jest adresem na dany obszar pamięci, do którego umożliwia dostęp; Może też zawierać wartość null
/nil
(czyli adres równy 0
), co umownie oznacza, że wskaźnik na nic nie wskazuje;
To nie kurs dla dzieci, więc Jaś i Marysia to nienajlepsze co możesz użyć do opisu technicznego zagadnienia.

A gdzie wskaźniki na funkcje?
Jeżeli mamy obiekt Foo to musimy zdefiniować nasz wskaźnik na obiekt Foo.
Aha, dobrze wiedzieć. A wskaźnik void* to na jaki typ obiektu wskazuje?

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
nie bedzie wskaznikow na funkcje od tego masz std::function chociazby
nie bedzie void* w najblizszym czasie to nie jest C

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
- Zmieniłem wygląd bloga. Jak przełączymy się na sidebar to wszystkie lekcje po lewej stronie będą pokazane jako lista (prośba do @msm by fasadin.4programmers.net kierował od razu na sidebar :))
- Poprawiłem literówki oraz wskazówki które dostałem
- Dodałem kolejną lekcje
Rozdział 8 będzie o tablicach
- Na początku pokaże jak używać debuggera! (dzięki @Shalom)
- Następnie polecę githuba (i także podam swoje konto żeby projekty z lekcji były dostępne z poziomu githuba). Wyjaśnię również podstawy używania
- Wyjaśnię tablicę (bez szczegółów)
- Krok po kroku napiszę projekt typu dziennik (z nauczycielem, ocenami, uczniami) na bazie tablic. Również z zapisywaniem do plików oraz przypomnienie jak używać google
- Przerobię kod tak by używał std::vector
Ten projekt dziennik będzie rozwijany później przy polimofrizmie (by dodać klasę Osoba) oraz z zapoznaniem się z JSONem (zamiast wymyślanego formatu w pliku). Pokaże również podstawy konfigurowania projektu (linkowania bibliotek)


- Rejestracja:prawie 9 lat
- Ostatnio:około 5 lat
- Lokalizacja:Pabianice
7.3
Od C++11 weszły mechanizmy do standardowego języka które bardzo ułatwiają pracę z dynamicznym alokowaniem pamięci, dzięki czemu możemy odłożyć dokładną naukę wskaźników na troszkę później.
Od C++11 weszły mechanizmy od standardowego języka, znacznie ułatwiające pracę z dynamicznym alokowaniem pamięci, dzięki czemu możemy odłożyć szczegóły działania wskaźników na później.
7.3.2.1
- Usunie obiekt który zawiera gdy zasięg unique_ptr wyjdzie poza zakres (pokaże na przykładzie)
Usunie zawierany obiekt, gdy zasięg unique_ptr wyjdzie poza zakres (pokażę to na przykładzie)
7.3.2.2
- Używamy gdy chcemy żeby obiekt był dzielony (był w kilku miejscach na raz. Ten sam obiekt a nie jego kopia).
- Używamy gdy chcemy, żeby obiekt był współdzielony (był w kilku miejscach jednocześnie. Ten sam obiekt, a nie jego kopia).

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
nowa lekcja sie opozni... mialem ja dzisiaj konczyc ale komp mi sie zresetowal a ze pisalem w visual studio code to sie nic nie zapisalo... (przyzwyczajenie z sublimetext ze tekst zostaje)
Mniej wiecej 16 godzin poszlo w... Poki co stracilem motywacje by pisac to od nowa ;)




- Rejestracja:ponad 19 lat
- Ostatnio:ponad 5 lat
No i mam trochę mieszane uczucia... Dawno nie pisałem w c++, więc na dobrą sprawę powinienem przelecieć cały kurs, żeby się pobawić w ocenianie, ale... tak pobieżnie przejrzałem... trochę wkurza czasami stylistyka i właściwie to nie wiem do kogo kierowany jest kurs... Do kogoś kto zaczyna, do kogoś kto ma już podstawy i chce sobie uporządkować wiedzę o klasach? Wkurza niekonsekwencja funkcja/metoda... Ot takie drobiazgi... Jak nie będę miał co robić, to się pouczę z Twojego kursu i trochę pomarudzę ;)



- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
- Postów:4882
Rok przerwy... ale jest zarys kolejnej lekcji ;) Tym razem o Debuggerze
Tutaj tekst
https://pastebin.com/8zRiNC6H
Tutaj zdjecia
http://imgur.com/a/1A9Hy
Mam nadzieje, ze jeszcze z 3-5 lekcji i będę mógł pisać w prawie normalnym C++ :)


number = number;
w konstruktorze raczej za wiele nie robi ;-) (chyba że to jest celem lekcji, nie patrzyłem jeszcze w tekst)
