Nauka C++ w nowy sposób

0

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

2

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ć.

0

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.

1

Drugi post poprawiony. Piszę jedynie po to by informować, że coś z kursem się dzieje

0

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ę.
0

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.
6

@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.

2

Jeśli zdecydujesz się na spis treści, to dobrze by było zrobić przy nagłówku każdej sekcji link do powrotu do spisu.

0

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
0

Ostatnio cos braklo motywacji, ale jest szkic rodzialu 6

http://pastebin.com/tkkPyeSM

Stylistycznie na pewno jest duzo do poprawy, bardziej wklejam linka czy merytorycznie ma to sens.
@Endrju @kq @ŁF @grzesiek51114

0

Jedna uwaga.
#pragma once działa tylko na visual c++. Lepiej zastosować #ifndef... Chyba, że się mylę.

0

oczywiscie ze sie mylisz :)

#pragma once

https://en.wikipedia.org/wiki/Pragma_once

jedynie w kompilatorze
Solaris Studio C/C++

nie ma pragma once

0

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.

3

Nie jestem polonistą, ale kilka rzeczy rzuciło mi się w oczy (odnośnie kursu).
Proszę się nie obrażać ;)
[0. Wstęp]

  1. "Nie masz się co martwić" -> Nie martw się
  2. "Co poprzez to rozumiem" -> Co przez to rozumiem?
  3. "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.

0

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 :)

0

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++?

0

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? ;)

0

Kiedyś zacząłem się uczyć QT, ale przestałem. To faktycznie typowe C++. Rozwiązania, które w "normalnym" C++ zajmują wiele linijek, sprowadzili do jednej lub nawet jednego polecenia. Wszystko obiektowe.

0

@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

0

http://pastebin.com/MeZ0AEEV

bardzo robocza wersja (zapewne merytorycznie sa bledy w kilku miejscach) postaram sie wieczorem to przeredagowac popatrzec na zrodla i gdzies jutro wrzucic

0

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.

0

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.

0

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?

0

nie bedzie wskaznikow na funkcje od tego masz std::function chociazby

nie bedzie void* w najblizszym czasie to nie jest C

1
  • 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)

1

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).
3

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 ;)

0

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ę ;)

0

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++ :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1