Obiektowy C++ odc. 3: Konstruktory. Destruktory. Dostęp: public, private, protected

Поделиться
HTML-код
  • Опубликовано: 24 янв 2025

Комментарии • 238

  • @lufl2
    @lufl2 10 лет назад +46

    Studiuje informatykę 1 rok , nigdy nie miałem nic wspólnego z programowaniem , ale po jakimś czasie zaczęło mi sie to podobać , teraz mam programowanie obiektowe , mam nadzieje ze będziesz dodawał częściej te poradniki bo są 3 razy lepsze od moich wykładów. Dzieki że to robisz.

  • @volodymyrsanotskyi3473
    @volodymyrsanotskyi3473 3 года назад +7

    Bardzo przydatny kurs, Pan tłumaczy to w najlepszy sposób, jaki się da

  • @szymon7300
    @szymon7300 7 лет назад +1

    Pięknie rozegrana lekcja nawiązująca do całości wsześniejszego materiału. Wiedza i dydaktyka, najlepiej wyłożony materiał z jakim miałem zetknięcie!

  • @Jonarzz
    @Jonarzz 10 лет назад +9

    Myślę, że warto dodać, że istnieje coś takiego jak this->name = name. Niektórzy uważają, że jest to niejasne, ale moim zdaniem zwiększa przejrzystość kodu - w każdym razie warto wiedzieć. Świetny kurs, pomaga przyswoić i usystematyzować wiedzę na temat OOP.

    • @kamilwisniewski1080
      @kamilwisniewski1080 2 года назад

      może jestem głupi, ale jak to zastosowałem to błąd krytyczny :P

  • @pierroplatini
    @pierroplatini 2 месяца назад +2

    WIADOMOSC DLA LUDNOŚCI.
    Przenioslem sie w czasie z dnia 6 sierpnia 1945r. Nie jest dobrze. Jest nas coraz mniej😢 Apokalipsa nas wykańcza.
    1 LIKE to -1 ZOMBIE

  • @HighRollersLounge
    @HighRollersLounge 10 лет назад +15

    Boże, jaki ten kurs jest wspaniały !

    • @oasisveritatis9463
      @oasisveritatis9463 3 года назад

      no, ale nie mało w nim błędów :) zalecam napisanie i sprawdzenie samodzielnie, o niektórych sprawach nie wspomniano co powoduje trudność napisania własnego programu.

  • @chavpl
    @chavpl 9 лет назад +384

    do osoby czytającej to po 6.sierpnia.2045: Mam nadzieję, że ten fenomenalny kurs przyda ci się np. do zaprogramowania działka maszynowego chroniącego twój bunkier przed atakami zombiaków. Powodzenia! :/

    • @ajkbgkjeagkeajgabgbkeb
      @ajkbgkjeagkeajgabgbkeb 7 лет назад +46

      No niestety, zombie apokalipsa nie nadeszła. Zamiast tego użyłem tego tutoriala żeby zrobić wechikuł czasu :)

    • @lukaszbownik6583
      @lukaszbownik6583 7 лет назад +14

      Wehikuł*

    • @adrianb8506
      @adrianb8506 7 лет назад +98

      może zasady ortografii uległy zmianie do 2045

    • @holahopper
      @holahopper 7 лет назад +49

      morze

    • @nindza909
      @nindza909 5 лет назад +14

      Dopiero końcem 2045 roku weszła ustawa o zmianie ortografii, więc kolega jest po prostu debilem.
      Pozdrawiam!

  • @katarzynawarzecha8410
    @katarzynawarzecha8410 8 лет назад +4

    Po wielu próbach, nareszcie zrozumiałam konstruktory, dziękuję ! :)

  • @aleksandraoleskiewicz9923
    @aleksandraoleskiewicz9923 2 года назад

    Świetny kurs. Niesamowicie umiejętne przekazanie wiedzy :)

  • @volodymyrsanotskyi3473
    @volodymyrsanotskyi3473 3 года назад +1

    Jeszcze raz dziękuję )))

  • @xdobreciastko
    @xdobreciastko 4 года назад +2

    Wielki szacunek dla pana :) swietny kurs

  • @shikamaru4271
    @shikamaru4271 4 года назад +3

    Jak zawsze świetnie wytłumaczone

  • @michah3956
    @michah3956 10 лет назад +3

    Dobry odcinek - jasno i prosto wytłumaczone.
    Przydał by się jeszcze odcinek o tym jak programista powinien sprzątać po obiektach. W Cpp często tworzy się dość rozbudowane,skomplikowane struktury danych (listy obiektów, listy wskaźników do obiektów, Obiekt które posiadają obiekty jako atrybut itp). Taki byłby odpowiedni następny odcinek ;)

  • @aplik3
    @aplik3 3 года назад +1

    super sprawa pozdrawiam pomogłeś mi bardzo

  • @michaplucinski142
    @michaplucinski142 3 года назад

    38:32
    TAAAK
    Dziękuję bardzo za te podsumowania!!
    :D

  • @magdalenagrzenkowicz4010
    @magdalenagrzenkowicz4010 7 лет назад +1

    Jak super! Świetny z Pana nauczyciel, dziękuję :)

  • @alpharius-l
    @alpharius-l 8 лет назад

    Kurs jest świetny. Nic dodać nic ująć.

  • @elektron_0193
    @elektron_0193 Год назад

    Mimo, że filmy były robione już dawno, to tłumaczą dużo lepiej niż nawet angielskie tuttoriale

  • @xevatov
    @xevatov 8 лет назад +1

    Bardzo dziękuje! Dzięki Panu zdałem kolokwium z programowania obiektowego :) Pozdrawiam!

  • @volodymyrsanotskyi3473
    @volodymyrsanotskyi3473 3 года назад +1

    dziękuję Panu !)

  • @shadowhook5669
    @shadowhook5669 5 месяцев назад

    Dziekuje, pozdrawiam.

  • @iwannabedev
    @iwannabedev 3 года назад +5

    Dla pedantów i tych którzy nie wyłapali błędu i mają problem z kompilacją podaję poprawki znalezionych błędów:
    1). W 9:04 w instrukcji if wdarł się błąd - zamiast:
    if(napis=="" || s

  • @yeeezooo
    @yeeezooo 8 лет назад

    Świetny odcinek, co prawda naciąłem się kiedy zrobiłem drugi konstruktor zmieniający ostatnia daną minuty aby tak jak było powiedziane nie trzeba klepać wszystkich argumentów z lewej strony i wtedy zapis Event w1; nie działa trzeba dać nawiasy i zdecydować się na któryś konstruktor to właśnie przeciążenie nazwy wcześniej nie rozumiałem tego ;) Brakło może przykładu w filmie z dwoma konstruktorami ale i tak bomba!! Dzięki za poświęcony czas i pasję do programowania.

  • @7tomas777654321
    @7tomas777654321 10 лет назад +4

    Pierwszy filmik, który był dla mnie prawie zupełnie nowy i mogę powiedzieć, że wszystko zrozumiałem dzięki Panu. Dwa małe pytanka miałem, ale google pomogło ;) Super :) Szkoda, że zadanka domowego nie było ;) Najlepiej jak dotyczą omawianego tematu :)

  • @mrfishpl277
    @mrfishpl277 6 лет назад +1

    Jem śniadanie i oglądam odcinek Pana Mirosława... Czego chcieć więcej... ;)

  • @MrSzymka
    @MrSzymka 10 лет назад +12

    Witam!
    Jeśli dobrze widzę, to od 9:12 parametry wywołania metody wczytaj() obiektu p1 w main(), a później parametry całego konstruktora nie zgadzają się z deklaracją metody i konstruktora, tzn. w deklaracji mamy string i 2 x int, a podczas wywołań 2 x int i string na końcu.
    Poza tym świetny kurs - ogląda się z miłą chęcią. Pozdrawiam

    • @holahopper
      @holahopper 7 лет назад +1

      o ile się nie mylę w tym przypadku kolejność liczy się dla zmiennych tego samego typu

  • @count_of_pizza
    @count_of_pizza 9 лет назад +45

    A gdzie praca domowa???? :(

  • @strzempa
    @strzempa 10 лет назад +12

    Świetny materiał. Może w przyszłości doda Pan omówienie podstawowych wzorców na podstawie c++? Często pytano mnie o nie na rozmowach o pracę.

  • @Xmanpl1
    @Xmanpl1 8 лет назад +13

    13:50
    A skad konstruktor - konretnie ten if wie co ma porownać? Chodzi mi to np. "s

    • @mikoajkaleta6856
      @mikoajkaleta6856 4 года назад +1

      Też na to zwróciłem uwagę
      Zrobiłem tak jak ty mówisz i dopiero mi zadziałało

    • @ziemniook87
      @ziemniook87 4 года назад +1

      Też właśnie na to zwróciłem uwagę i dlatego zszedłem do komentarzy, żeby zobaczyć jak miałoby to działać xD

    • @godekdominik2678
      @godekdominik2678 4 года назад +1

      Jeżeli dobrze rozumiem, to taki zapis działałby tylko wtedy kiedy to nazwa konstruktora byłaby zapisana w pliku z nagłówkami, natomiast kod znajdujący się w środku zapisany byłby w pliku .cpp .

  • @Frish2010
    @Frish2010 8 лет назад +2

    Naprawdę dobra robota z tym kursem. Szkoda tylko że już dawno nie było żadnego odcinka. Pewnie już podstawy wyjaśniłeś. Ale to nie szkodzi żeby dodać jeszcze trochę informacji w dodatkowych odcinkach bo naprawdę genialnie to przedstawiasz:)

  • @SekretZdzicha
    @SekretZdzicha 6 лет назад +4

    Odnośnie 29:40, oczywiście że nazwa argumentu formalnego w konstruktorze może być taka sama jak nazwa zmiennej składowej klasy. Wystarczy użyć operatora this->nazwa = nazwa, aby wszystko zadziałało poprawnie.

  • @Fenolly
    @Fenolly 3 года назад

    dziekuje

  • @adrian29106
    @adrian29106 5 лет назад +1

    dzieki mordo

  • @longingheart77
    @longingheart77 8 лет назад

    Świetny odcinek.
    Jak się trochę popracuję co wieczór to wszystko się da nauczyć :)

  • @wscamel226
    @wscamel226 Год назад +1

    20:40 - 👀 Jak to globalnie? Ale nam nauczyciel mówił że nic nie można robić globalnie

  • @Hantick
    @Hantick 7 лет назад

    Świetnie jak zawsze

  • @kacperkubica9469
    @kacperkubica9469 8 лет назад +1

    Szanowny Panie Mirosławie,
    gratuluję kanału. Przez lata brakowało darmowych materiałów o takiej jakości zarówno merytorycznej jak i dźwiękowo-wizualnej. Jednakże, muszę przyznać, że powinien Pan popracować nad wypowiedzią (mam na myśli np.: "w cudzysłowiu", "generalnie", "totalnie", "prawda?").

  • @jakubswiglo8007
    @jakubswiglo8007 7 лет назад

    dziękuję!

  • @karol6767
    @karol6767 7 лет назад

    jak zwykle świetny odcinek.oby ich jak najwiecej:)

  • @phnxshine
    @phnxshine 5 лет назад +8

    0:48 Żyjemy w klasach

  • @januszewskijanuszek6634
    @januszewskijanuszek6634 4 года назад

    Ten pachelbell w tle zawsze będzie mi się kojarzył z Pana filmami

  • @_I_like_kebeb
    @_I_like_kebeb 2 года назад

    nauke zaczynałem od zera, teraz gdy oglądam i pisze kod 3-4 raz to rozumiem przekazywane treści,naprawdę wszystko jest tu mega dobrze wytłumaczone,jedynie wskaźniki są dla mnie problemem

  • @jakub9814
    @jakub9814 5 месяцев назад +1

    do zobaczenia za 21 lat

  • @das8934
    @das8934 6 лет назад

    Dzięki Panie Mirosławie za poradniczek :) jesteś nie tylko idealnym nauczycielem,ale także idealnym celem dla reklamodawców.Podczas oglądania tego filmu wyświetliła mi się 6 razy reklama udemy :P Polecasz może tę platformę?

  • @johny8960
    @johny8960 8 лет назад

    Super Film, dziekuje :D

  • @robertdanielkiewicz7851
    @robertdanielkiewicz7851 6 лет назад

    O! nie było zadania? No to sam sobie stworzę... :) Dzięki za kolejny odcinek...

  • @p0p0s
    @p0p0s 10 лет назад +2

    Można też zaznaczyć, że nagłówek można też dodać przez File>New..>File..

  • @AgeDee34
    @AgeDee34 10 лет назад +3

    w końcu porządny kurs ;)

  • @aniau5710
    @aniau5710 8 лет назад

    super :) notatki też bardzo pomocne ^^

  • @adamwrzesniewski1468
    @adamwrzesniewski1468 7 лет назад

    10:57 - a ja to rozumiem tak że typem zwracanej wartości przez metodę konstruktora "Przycisk" jest właśnie obiekt klasy "Przycisk"

  • @oasisveritatis9463
    @oasisveritatis9463 4 года назад +1

    9:14 przy sprawdzaniu instrukcji if jest błąd, sprawdzanie warunku string, trzeba zdefiniować co ma być sprawdzone, w tym przypadku pusta spacja, bez niej kompilator uczyni warunek prawdziwy i zawsze będzie wypisane ERROR. Tak myślę, czy nie mam racji? Wydaje sie, że powinno być: napis==" ", a nie napis==""

  • @michaplucinski142
    @michaplucinski142 3 года назад +1

    2:35, a gdyby nie dawać tego if'a i był by sam while?
    Nie było by go czasem lepsze rozwiązanie?

  • @frankeneryk2274
    @frankeneryk2274 7 лет назад

    Do nauki potrzeba dwóch rzeczy: czasu i wysiłku. Ty włożyłeś wysiłek za mnie więc musiałem tylko poświęcić czas :)

  • @wscamel226
    @wscamel226 Год назад +1

    2:53- czyli w nierzeczywistych się da?

  • @lolxd3248
    @lolxd3248 8 лет назад

    20:52 obiekty statyczne nie trzeba inicjalizować zerem, bo są one zaraz po stworzeniu nim zainicjalizowane.

  • @michal234486
    @michal234486 8 лет назад +9

    Dzień dobry,
    mam pytanie, czy np. w minucie 9:43 (ale wcześniej i później też) w if-ie wewnątrz funkcji wczytaj nie powinno być n=="", zamiast napis=="" ?

    • @tabletborys7643
      @tabletborys7643 6 лет назад

      michal234486 : też miałem o to zapytać :) wychodzi na to, że to błąd.

    • @squmc
      @squmc 5 лет назад

      @@tabletborys7643 @29:33 tłumaczy dlaczego to co napisałeś jest poprawne

  • @spoiler-man9640
    @spoiler-man9640 4 года назад +2

    Znając 2020 rok to właśnie 2020 powinien tam być ale ok

  • @kowalskimateusz
    @kowalskimateusz 10 лет назад +1

    Świetne Nagranie. Tak to ja się mogę uczyć :-). Konkretnie, klarowne, spójnie, ułożone w porządku. Wielkie dzięki za nagranie. Teraz Widzę jakie te konstruktory i destruktory są dobre.
    Pytanie na marginesie Nie obrażę się jeśli nie odpowiesz, bo pytanie nie jest krótkie. Czy można taką kontrolę (hermetyzację) osiągnąć w C, gdyż dużo programuje sprzętu sensory, silniki, ledy, mikrokontrolery itp. Są tam w zasadzie "polecenia" static i extern, ale do końca nie wiem jak to rozwiązać.

    • @kowalskimateusz
      @kowalskimateusz 10 лет назад

      ***** Okej dzięki za info poszperam co nieco.

  • @shererere_
    @shererere_ 10 лет назад +4

    19:58 powinno być understand, bez s :P

  • @Mandegavelian
    @Mandegavelian 9 лет назад +8

    23:24
    Wyobraź sobie , że to błąd w pisaniu słowa quit :P

  • @Logarytms
    @Logarytms 10 лет назад +2

    8:58 nie powinno tam być p1.szerokosc = 100; zamiast szerokosc = 100; ?
    17:54 Dlaczego zaraz błąd? Wskaźnik zawierałby śmieci. Gorzej jakby się chciało coś tam do tej komórki pamięci wpisać. Dobrze rozumiem?

    • @Logarytms
      @Logarytms 10 лет назад +1

      Mnie zawsze uczono, że odczytać coś zawsze można. Niekiedy nie ma to sensu jak np. śmieci w zmiennej. Ale to nie psuje programu. Co innego jak wstawiamy jakąś wartość. Później program może nam się sypać nie wiadomo z jakiego powodu. Ciężko jest takie coś potem wychwycić a debuggując stracimy na pewno sen z powiek.
      Znaczy ja chcę tylko wypisać zawartość. Nie chcę pod żaden inny obiekt podstawiać wartości tej pokazywanej na wskaźnik.
      30:22 Nie mógłbym nazwać argumentu string name i skorzystać z operatora zakresu?
      Event::name = name; w taki sposób?

    • @Logarytms
      @Logarytms 10 лет назад

      No tak to już wtedy jest bardzo niebezpieczne i ciężko takie zjawisko kontrolować. Bardzo udany był dzisiejszy odcinek. Mam nadzieję, że rekruci nie będą mieli problemów ze zrozumieniem :)
      A co do mojego zapytania:
      Event::name = name; mógłbym tak użyć?

    • @damianlis9123
      @damianlis9123 5 лет назад

      powinno, niezaleznie, czy te atrybuty sa publiczne, czy prywatne, musimy sie do nich odwoolac poprzez obiekt klasy czyli np. p1.szerokosc, gdyby byly prywatne to p1.szerokosc by nie bylo dostepne

  • @tomaszkocinski6050
    @tomaszkocinski6050 10 лет назад

    30:00 - czy czasami globalna zmienna "name" nie zostanie zasłonięta? wtedy name=name; nie zrobi nic (tzn prawdopodobnie wykona się przypisanie, ale wartość się nie zmieni)

  • @micha9552
    @micha9552 8 лет назад

    Ciekawostka:
    Jeżeli w klasie występuje kilka konstruktorów i przy wywoływaniu obiektu nie podamy żadnych argumentów to kod się nie skompiluje. Tak samo jest, kiedy np. nie podamy wszystkich argumentów, a argumenty które podaliśmy pasowałyby do kilku konstruktorów.

  • @paulphysman6891
    @paulphysman6891 10 лет назад +9

    Witam.
    Czy będzie dodawał Pan filmy dotyczące zadań z matury rozszerzonej?
    Maturę będę pisać w przyszłym roku i chciałbym się przygotować do takich zadań jakie tam występują (a w szkole nie mam na co liczyć, wszystko we własnym zakresie muszę organizować :) )

    • @paulphysman6891
      @paulphysman6891 10 лет назад

      *****
      Mam pytanie trochę z innej beczki. Jak zabrać się za zadanie o treści:
      "dane są suma i iloczyn dwóch liczb całkowitych. Napisz program znajdujący te liczby". Nie liczę oczywiście na rozwiązanie, ale na jakieś wskazówki. Dziękuję.

    • @paulphysman6891
      @paulphysman6891 10 лет назад

      Już mam rozwiązanie. Kod (pierwiastków):
      a=(s-sqrt(pow(s, 2)-4*i))/2;
      b=(s+sqrt(pow(s, 2)-4*i))/2;
      I wszystko działa jak należy.
      Nie pojmuję natomiast dlaczego zamiast = nie mogłem użyć ==. Wydawało mi się, że znak równości powinien być uznany.

    • @paulphysman6891
      @paulphysman6891 10 лет назад +2

      Już rozumiem. Dziękuję :)

    • @Nowacx
      @Nowacx 6 лет назад +13

      I jak poszła maturka? ;)

  • @nonick8054
    @nonick8054 10 лет назад

    Witam. Z uwagą oglądam i odbieram przygotowaną przez pana wiedzę w filmach i tylko u pana potrafię w "mój" sposób przyjąć do siebie tą wiedzę. Mam również pytanie czy po zakończeniu kursu C++ napisze pan program ze (może nie) wszystkimi lekcjami ? To również pomogło by nowym programistom (takim jak ja) jak wygląda taki porządny program. Sam mam ambitne plany do C++ głownie do gier :) Dziękuję za kolejny wspaniały film. Życzę miłego dnia do zobaczenia.

  • @KyrietPL
    @KyrietPL 10 лет назад +2

    Nie wiem czy już ktoś to już pisał i Pan na to odpowiedział, ale kiedyś, gdy poznawałem dzielenie programu na pliki, to zostałem poinformowany, że nie powinno się w każdym pliku dodawać tych samych bibliotek. W przypadku programu pisanego przez Pana w tym odcinku wystarczyło wpisać "#include " w pliku nagłówkowym, a ponieważ plik ten jest podłączony do wszystkich innych .cpp w programie, to cały program może korzystać z tej biblioteki. Jest jakiś specjalny powód, dlaczego dodawał Pan to we wszystkich plikach?

  • @oasisveritatis9463
    @oasisveritatis9463 4 года назад +2

    9:37 jet błąd, argumenty wchodzące w procedury mają przypisaną swoją konkretną kolejność, nie można przy wywoływaniu procedury zmienić tej kolejności, czyż nie?

    • @deathlotos522
      @deathlotos522 3 года назад +1

      Wydaje mi sie, ze masz racje. Dodatkowo 13:39 chyba brakuje nazwy zmiennej przy okreslaniu argumentu domyslnego.

    • @oasisveritatis9463
      @oasisveritatis9463 3 года назад

      @@deathlotos522 słuszna racja, sprawdziłem na swoim przykładzie i jest jak napisałeś. Co więcej, o ile się nie mylę, kolejność argumentów w konstruktorze musi być zapisywana od tyłu z listy definicji atrybutów, inaczej program nie działa. Pozdrawiam.

  • @michaszymocha134
    @michaszymocha134 10 лет назад +1

    Bardzo fajna seria poradników, ale mam pytanie do 13:48
    Tam jest :
    Przycisk(string="OK", int=100, int = 25)
    a zastanawia mnie dlaczego nie tak :
    Przycisk(string n="OK", int s=100, int w=25)
    w tym pierwszym przykładzie skąd kompilator ma wiedzieć że int 100 to szerokość ??

    • @michaszymocha134
      @michaszymocha134 10 лет назад +1

      ***** dzięki za szybką odpowiedź.
      Pozdrawiam i z okazji nowego roku życzę Ci natchnienia w dalszym tworzeniu poradników.

    • @piotrbatko172
      @piotrbatko172 9 лет назад +1

      Michał Szymocha Faktycznie, jest to błąd. Gdyby jednaki taki zapis pojawił się wcześniej jako deklaracja (np. w pliku nagłówkowym), a w definicji podano by zapis z nazwami argumentów, (już bez wartości domniemanych,) wszystko byłoby ok. Jakbyś chciał dokładne wyjaśnienie tego mechanizmu, to jest w Symfonii C++ w rozdziale "Funkcje -> Ciekawostki na temat argumentów domniemanych" (u mnie strona 130).
      Jest tak, że deklaracja (nie definicja) funkcji informuje kompilator jedynie o typie i ilości argumentów. Z tego faktu wynika, że nazwy argumentów można przy deklaracjach pomijać.
      Przykład z symfonii dwóch równoważnych deklaracji:
      void f(int pierwszy, double drugi);
      void f(int, double);
      Jeżeli ktoś ma w zwyczaju nie pisać nazw przy deklaracjach, to przy deklarowaniu argumentów domniemanych (Pan Mirosław mówi domyślnych) nie musi się odzwyczajać :) Pisze się wtedy właśnie w taki dziwny sposób:
      void f(int = 4, double = 20);
      I wszystko gra. Podsumowując, poprawny będzie taki fragment programu:
      void f(int = 4, double = 20);
      void f(int pierwszy, double drugi)
      {//ciało procedury}
      I równoznaczne jest to zapisowi:
      void f(int pierwszy = 4, double drugi = 20)
      {//ciało procedury}

  • @molekuax8646
    @molekuax8646 6 лет назад

    13.40 zgłaszam błąd - brak nazwy zmiennych w konstruktorze przy domyslnym wywolywaniu. BARDZO MERYTORYCZNY MATERIAL ! DZIEKI ! :]

  • @TheNuclear23102077
    @TheNuclear23102077 10 лет назад +1

    Mam problem z ponizszym zadaniem a jest to bardzo pilna sprawa z poziomu studiów , od której zalezy bardzo wiele
    klasa Zamowienie z polami pryw.
    int*towary - wsk tablicy z lista tow w zamowieniu.
    double *ceny - wsk tabl z cenami poszczeg. tow w zamówieniu
    int maxPoz zamowienie na moze miec wiecej niz maxPoz (towarow)
    int ilePoz akt. liczba poz. zamówienia
    Metody:
    konstruktor z parametrem (int maxPoz) okresla max liczbe pozycji w zam. , konstruktor powinien nadac odpowiednie wartosci wszytskim polom klasy
    void dodajPozycje(int idTowaru, double cenaTowaru) funk. dodaje towar do listy el. zamowienia jesli jest miejsce
    double najdrozszyTowar() f zwraca identyfikator towaru(z tablicy towary)ktorego koszt jest najwiekszy , w przypadku gdy zamowienie jest puste wynikiem jest -1
    double kosztCalkowity() f zwrca sumaryczny koszt zamowienia
    destruktor.
    pastebin.com/HuYhRyDy (moje proby)
    Bardzo prosze o pomoc to bardzo ważne.

    • @TheNuclear23102077
      @TheNuclear23102077 10 лет назад

      dobrze, no to tak to pozamieniam, a np w tym konstruktorze:
      musze przypisac wartosci, i kompletnie nie wiem jakie. one sa dowolne , jak w konstruktorze domyslnym?
      bo on mi tu wyglada na nieco inny niż w zadaniu event, gdzie pierw w klasie był konstruktor ze stringiem i intami, pozniej w ~event::event tam bylu juz podane typy i literki(odpowiadajace np day, month,year) i potem bylo year=y; itd..

    • @TheNuclear23102077
      @TheNuclear23102077 10 лет назад

      Dobrze. bardzo dziękuje :)
      nie chciałem Panu zawracac glowy , niestety musiałem zapytać, jeszcze raz dziękuje

  • @blekfut5763
    @blekfut5763 4 года назад +2

    8:48 Dlaczego jest "szerokosc", "wysokosc", "napis" a nie p1.szerokosc, p1.wysokosc, p1.napis?

    • @panx8160
      @panx8160 3 года назад

      Wydaje mi się że to tylko tak dydaktycznie było pokazane, później w programie pisze poprawnie, jeśli się mylę proszę popraw mnie :d

  • @rotmistrzjanm8776
    @rotmistrzjanm8776 5 лет назад

    9:30 a nie lepiej byłoby po prostu zadeklarować unasigned int?

  • @ethan99xx
    @ethan99xx 9 лет назад

    Co racja to racja, im wiecej razy obejrzysz, tym lepiej rozumiesz :)

  • @paw000
    @paw000 Год назад

    W jaki sposób ustawić wartość domyślną w konstruktorze, który znajduje się w klasie?

  • @24sell
    @24sell 8 лет назад

    w swift sie olewa kontruktory bo maja computed properties. ;)

  • @keram8502
    @keram8502 8 лет назад

    Mam pytanie - w 30:11 powiedział Pan żeby dać argument w konstruktorze np n, żeby nie mieszało się. I w związku z tym mam pytanie - czy można użyć zamiast n, name, a potem użyć this ( np. event(string name){ this->name = name;} ) ?
    Bardzo fajne filmy

  • @marchewagg8519
    @marchewagg8519 2 года назад +1

    nie działa u mnie gdy mam klasę w oddzielnym pliku event.h a jak już dodałem do głównego pliku wszystko zaczęło mi działać wszystko jak należy o co może chodzić?
    edit: biblioteka #include "event.h" nie działa moim zdaniem w tym może być problem i korzystam z visual studio code.
    wyskakuje że main.exe nie istnieje

  • @vivvpprof
    @vivvpprof 10 лет назад

    13:39 czy na pewno zapis Przycisk(string="OK", int=100, int=50) jest poprawny? Nie powinno być Przycisk(string s="OK" itd.? No bo co jeśli będę chciał zrobić przycisk z innymi wartościami? Skąd będzie wiadomo, że drugi argument konstruktora to wysokość a nie szerokość?

    • @vivvpprof
      @vivvpprof 10 лет назад

      Poza tym w 9:07 powinno być if(n == "" || s

  • @Logarytms
    @Logarytms 10 лет назад

    Jeszcze zapytam. Jak brzmiała funkcja, która czekała przez jakiś czas wyrażony w minisekundach? Pamiętam, że coś takiego chyba widziałem w pańskim kursie.

  • @Blondiii369
    @Blondiii369 9 лет назад

    Panie Mirosławie, mówił Pan, że po użyciu konstruktora domyślnego cały czas mamy możliwość późniejszego wczytania danych np. z klawiatury. Ja właśnie pracuję nad takim programem, w którym użytkownik sam wpisuje dane albo wybiera je jako domyślne(działanie konstruktora domyślnego). Natomiast w dalszej części programu gdzie działa inna klasa, która dziedziczy od opisywanej poprzednio dane są cały czas pobierane z konstruktora domyślnego, nie z metody wczytaj();, to jak to w końcu jest?

  • @MichalProszek
    @MichalProszek 10 лет назад

    2:40 nic nie zmieni bo scope jest prywatny (ani nie wczyta)

  • @gekkorav
    @gekkorav 10 лет назад

    Witam. Czy bedzie nastepny odcinek cyklu? Pozdrawiam i dzieki za kurs.

  • @RacingRalphEVO
    @RacingRalphEVO 7 лет назад

    17:48 - Ale jak to? Przecież odwołanie się do adresu NULL, kończy działanie programu.

  • @GerwantPlayAgain
    @GerwantPlayAgain 6 лет назад

    Jeśli chodzi o klasy, to spotkałem się z dwoma pojęciami, tzw. Rule of Three, czyli zasadą mówiącą o tym, że klasa musi mieć konstruktor, destruktor, i operator przypisania; oraz Rule of Zero, czyli zasadą mówiącą o tym, że klasa nie musi mieć żadnego z poprzednio wymienionych elementów, więc czy stwierdzenie że zawsze powinno się definiować konstruktor nie jest błędne ? W przypadku Rule of Zero, konstruktor nie występuje, natomiast kompilator sam może sobie ten konstruktor wygenerować.

  • @bartoszsterniczuk3694
    @bartoszsterniczuk3694 10 лет назад

    Świetny poradnik. Jaką poleca pan książkę do dalszego rozwijania wiedzy w języku c++.

  • @damianwysocki9753
    @damianwysocki9753 7 лет назад

    Znowu musiałem rozbić odcinek na dwa podejścia. To nie problem, bo lepiej, kiedy jest za dużo informacji, niż za mało. :)

  • @trotyl84
    @trotyl84 5 лет назад

    Czy domyślnymi wartościami w konstruktorze mogą być inne dane pobierane np rzeczywista data (pobierana w momencie uruchomienia danego konstruktora teraz ) ?

  • @oskar7328
    @oskar7328 5 лет назад

    Lekki błąd z twojej strony, przy konstruktorze w argumentach możesz podać tą samą nazwę co w klasie, lecz przy zmiennych zawartych w klasie trzeba będzie dodać przestrzeń w jakiej się znajduje w tym przypadku np Event::hour lub po prostu this->hour jeżeli zmienna znajduje się w tej samej klasie co metoda, warto tak pisać z tego powodu że przy wywoływaniu konstuktora kompilator może nam podpowiedzieć co będziemy wprowadzać

  • @knayder42
    @knayder42 9 лет назад +1

    13:36 ale to nie powinno działać.
    Przycisk(string="OK", int=100, int=25) ale jaki string oraz dwa inty.

    • @mlgdoge2540
      @mlgdoge2540 8 лет назад

      Knayder na dalszych etapach programowania dowiesz się o zmiennych bezimiennych...

    • @knayder42
      @knayder42 8 лет назад

      Trochę się spóźniłeś. C++ już dużo bardziej ogarniam :D

    • @knayder42
      @knayder42 8 лет назад

      Poza tym, to nadal nie ma sensu.
      Ten zapis byłby poprawny jeżeli definiowałbyś konstruktor poza klasą:
      Klasa::Klasa(int i){
      ....
      }
      A w klasie
      Klasa(int = 10);
      Ponieważ w kodzie Pana M. Zelenta, nigdzie nie zostały zarezerwowane nazwy zmiennych s, w i n.

    • @olas4644
      @olas4644 6 лет назад

      Zostaly zarezerwowane

    • @jakubgowczyk4964
      @jakubgowczyk4964 6 лет назад

      Przecież jak można zmiennym przypisać wartość zmiennych bezimiennych ? trzeba je nazwać !

  • @dominikkubacki1395
    @dominikkubacki1395 5 лет назад

    Witam. Mam pytanie do pana Mirosława Zelenta. Chciałbym się dowiedzieć ile odcinków z kursu języka html i kursu języka css jeszcze będzie na kanale i mniej więcej kiedy one się pojawią? Domyślam się, że gdyby weszły np. jakieś nowe znaczniki to odcinek może nagle się pojawić, ale chodzi mi o odcinki, które są już zaplanowane. Z góry dziękuję za odpowiedź. ;)

  • @Donniedarko1234567
    @Donniedarko1234567 7 лет назад

    A skad wiadomo do jakich parametrow zostana przypisane wartosci domyslne konstruktora skoro nie ma tam nazw zmiennych ? Chodzi o slajd w min. 13.45

  • @Majappiotrowska
    @Majappiotrowska 7 лет назад

    Jeżeli mamy szalenie dużo atrybutów, to możemy jakoś inaczej (szybciej,prościej ) ustawić atrybuty w konstruktorze ?

  • @ukaszturon8893
    @ukaszturon8893 5 лет назад

    Tak patrzę i wnioskuję że z tymi klasami i obiektami to tak trochę jakby pisać program ( klasę ) piszący program ( obiekty dziedziczące ) ( wiem to trochę dziwne podejście = mała rekuręcja i papka bananowo kiełbasiana )

  • @trollol5000
    @trollol5000 5 лет назад +1

    ale pan wie chyba wszystko co wiadomo o konstruktorach i destrukcji WIELKI SZACUN DLA PANA I PANA ZIOMALI

  • @bartekdudek766
    @bartekdudek766 6 лет назад

    Kiedy poradnik zaczyna się od Kanonu D Pachelbela i już wiesz, że będzie dobry.

  • @baton12321
    @baton12321 10 лет назад

    Witam, czy poleca Pan uczenie się w międzyczasie (w oczekiwaniu na kolejne filmiki z pańskiej serii) innego języka, np. PHP? Czy lepiej skupić się póki co na C++ a dopiero po skończeniu kursu zabrać się za co innego?

    • @michah3956
      @michah3956 10 лет назад +1

      Wiele języków jest podobnych to siebie - różnią się detalami Cpp jest zdecydowanie najtrudniejszy bo wymaga najwięcej uwagi od programisty/projektanta sys. Np. Java to taki uproszczony Cpp, posiada GC który sprząta po programiście.

    • @baton12321
      @baton12321 10 лет назад

      ***** To może spytam jakie języki Pan poleca po C++?

  • @maciejkuchta177
    @maciejkuchta177 3 года назад

    Jedyny kanał na yt ze słusznymi tagami filmu.

  • @wrzaskun000
    @wrzaskun000 9 лет назад

    Dlaczego w 2:45 mianownik jest 2x sprawdzany, w "if" a potem w "while"?

    • @patrykbika1535
      @patrykbika1535 9 лет назад

      +wrzaskun000 Teoretycznie nie jest sprawdzany 2 razy. :) Sprawdza go tylko instrukcja if, a while to już pętla, która wykonuje się tyle razy, ile razy zmienna mianownik jest przyrównywana do 0.

  • @TheMulacz
    @TheMulacz 9 лет назад +1

    Podoba mi się że używa Pan angielskich nazw zmiennych.

  • @panukasz9899
    @panukasz9899 10 лет назад

    Nie za bardzo rozumiem. Prosiłbym o krótkie rozjaśnienie.
    1. Niżej jakiś widz pisze dlaczego w 13:48 nie nadaje Pan w konstruktorze nazw poszczególnym typom danych. Jednak w programie o Eventach, również Pan nie podaje nazw w konstruktorze np. 28:55, tylko same typy danych a mimo to działa.
    2. Podaje Pan, iż nadając konstruktorowi wartości domyślne w momencie tworzenia, nie można tworzyć obiektu już w inny sposób. Mi jednak to działa. Zmodyfikowałem trochę Pana program i poniżej wklejam kod (ze wszystkich trzech plików - podpisałem w komentarzach je). Wszystkie trzy sposoby mi się kompilują.
    wklej.org/id/1605298/
    3. Apropo pierwszego punktu, to chodzi mi linijke 13 z mojego, powyższego kodu
    Event(string="brak",int=01,int=01,int=2015,int=8,int=00);
    nie powinno być Event(string n="brak", int d=01.......int m=00); ? - tak jak to pisał jeden z widzów poniżej? Dlaczego to działa?

    • @panukasz9899
      @panukasz9899 10 лет назад

      *****
      doszedłem już jakiś czas temu do tego, jednakże dziękuje za odpowiedź :)