Уроки C++ с нуля / Урок #18 - (Введение в ООП) Классы и объекты

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

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

  • @monolag4319
    @monolag4319 8 лет назад +327

    "И копировали бы весь код для новой вкладки. То есть это х... Это плохо! "

    • @alexbohak4628
      @alexbohak4628 7 лет назад +25

      проорал на этом моменте

    • @СерМаз
      @СерМаз 7 лет назад +9

      пеесматривал еще раз на этом моменте)

    • @leowarrero3174
      @leowarrero3174 6 лет назад +7

      2:05

    • @NFOR
      @NFOR 6 лет назад +6

      так можно было бы создать бесконечный цикл while

    • @ВладимирЛатыпов-и7г
      @ВладимирЛатыпов-и7г 6 лет назад +5

      И копировали бы весь код для новой вкладки.
      Но это же полный бред!!!
      У нас просто была бы функция, создающая новую вкладку

  • @ifomich
    @ifomich 7 лет назад +33

    Давным давно, помнится, я брал игры от телефонов, декомпилировал их, переводил на русский и собирал обратно в .jar файл. Языка java я не знал и мне всё было интересно, чёйта там за классы в каждом файле. И вот спустя 13 лет я таки понял, что это за классы такие))
    Но автор молодца! Объясняет так, что даже я понимаю))

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

      Сергей Фомичев Жиза

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

      какой декампилятор ты использовал ?

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

      Хах я тоже с похожего начинал декомпилировал плагины для серверов Minecraft и русифицировал

  • @РусланАхмадуллов-м2э

    Можно сделать еще интереснее, чтобы не в коде прописывать 3 параметра для объекта, а в консоли.
    Т.е создать функцию чтобы записывать данные в переменные:
    void input() {
    cin >> year;
    cin >> month;
    cin >> day;
    }
    А внизу вместо shkoda.set(параметры); прописать shkoda.input();

  • @НикитаАндреевич-щ6г

    Спасибо тебе, Гоша. Очень полезные и продуктивные уроки. Осваивается язык с твоей помощью очень легко

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

    Спасибо. Понятное и интересное объяснение.

  • @Patallogus666
    @Patallogus666 7 лет назад +15

    Обалденные уроки и шикарная подача! От остальных авторов я засыпал реально)))))))))

  • @ЗИБРАПАЛАСАТАЯ
    @ЗИБРАПАЛАСАТАЯ 7 лет назад +79

    02:10 чуть не матюкнулся))

  • @АлинаПетрова-н6я
    @АлинаПетрова-н6я 2 года назад

    Это гениально!Спасибо вам)

  • @Gamingbeluga34
    @Gamingbeluga34 2 года назад +3

    У автора 100% Шкода :)

  • @СергейАлександров-б1м

    👍👍👍💪👏👏👏 Спасибо! Создал свой клас с использованием Кирилицы .

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

    2:08 хотел сказать, что - то, но передумал😉

  • @NoName-xh9nb
    @NoName-xh9nb 8 лет назад +21

    Здравствуй а когда ты будешь говорить про создание GUI и будешь ли вообще про него говорить?
    Спасибо!

  • @vooslich
    @vooslich 2 года назад +2

    " 1:50 -- то мы бы просто копировали весь код ради одной вкладки. Это х... это плохо.."

  • @СергейКабанов-ж4р
    @СергейКабанов-ж4р 5 лет назад

    Спасибо!

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

    Только что глянул, помог с темой) В вузе не мог выучить нифига, завтра экз. Луцек ставлю)

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

    Такое получилось. Сначала просто так сделал, потом захотелось со вводом. Но со вводом как-то громоздко если в мейне его делать, поэтому перенес его в функцию класса.
    class House
    {
    private:
    int floor_amount, age, room_amount;
    string name;
    public:
    void set(string name_house, int floor_house, int room_house, int age_house)
    {
    cout name_house;
    cout floor_house;
    cout room_house;
    cout age_house;
    name = name_house;
    floor_amount = floor_house;
    room_amount = room_house;
    age = age_house;
    }
    void get()
    {
    cout

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

    хорошее видео , молодец.

  • @dangan9932
    @dangan9932 7 лет назад +37

    Это ху, это плохо)))

  • @mbpddd
    @mbpddd Год назад +2

    Как выделять и сразу коментировать на вижуал студио

  • @ХаваГазиева-и5й
    @ХаваГазиева-и5й 6 лет назад

    Хорошо комментируешь (2:09 - Это х..... Это плохо...)

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

    Понимаю, что не очень актуальная, но немного полезная информация для автора: "is" и "-" - одно и то же. Например, "месяц - 11" переводится как "(the) month is 11"

  • @Danoherqoyan
    @Danoherqoyan 7 лет назад +3

    Спасибо большое за твои старания...
    #include
    using namespace std;
    class Home{
    private:
    int floor, room, price;
    public:
    void set(int hm_floor, int hm_room, int hm_price){
    floor = hm_floor;
    room = hm_room;
    price = hm_price;
    }
    void get() {
    cout

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

    удобненько и воды немного спасибо

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

    Прикольно, что я смотрю это видео 23 ноября)))

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

    #include
    #include
    using namespace std;
    class houses {
    private:
    int windows ;
    bool pool;
    float square;
    string name;
    public:
    void message() {
    cout

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

      Получилось круто, можно еще вместо if(pool == 1) **код** else **код** , сделать так:
      **Код** if(pool == 1) cout

  • @ГлібМаліков
    @ГлібМаліков 7 лет назад +3

    #include "stdafx.h"
    #include
    #include
    using namespace std;
    class phone {
    private:
    int year, size, yadra;public:
    void message() {
    cout

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

      Молодец, неплохо, но... (знаю что уже почти год прошёл, скорее всего уже хорошо шаришь, но для остальных интересующихся напишу) Плохо что ты используешь разные отдельные функции get и set для каждого бренда телефона. Таким образом ты не совсем верно использовал главную фишку ООП, показанную автором в этом видео --> суть в том, что имея одну функцию, можно забивать совершенно разные значения под каждый из экземпляров класса. (Знаю что юзал скорее для текста cout, но так, думаю, не стоит делать)

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

      ​@@timohavol8032 Молодец, неплохо, но... (знаю что уже почти год прошёл, скорее всего уже научился гуглить, но для остальных интересующихся напишу) Плохо что ты используешь слово yadra ведь ты знаешь слова year и size. Таким образом это выглядит максимльно нелепо. (думаю, не стоит так делать)

  • @elyutin5283
    @elyutin5283 7 лет назад +2

    Поправьте если что-то не так,но разве public,private,protected это не спецификаторы доступа?

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

    будут ли уроки по c++ || c# для профф?

  • @ДарьяМ-т3л
    @ДарьяМ-т3л 5 лет назад

    Очень хороший урок, объясняешь просто отлично, спасибо большое. Подскажи, пожалуйста, только как называется программа(компилятор), который показан на видео

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

      даша ириньева , на mac -Xcode на Windows - visual studio или code block(на крайняк)

  • @roflanebalo4456
    @roflanebalo4456 6 лет назад +7

    2:09 копировать весь код это ху...плохо для программы)

  • @tree-service
    @tree-service 7 лет назад

    как правильно вынести данный класс "авто" в другой файл и подключить его к этому проекту?

  • @piha1298
    @piha1298 5 лет назад +9

    Ну когда же шкода будет записываться правильно: "Skoda" без h =D

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

    а почему бы не получать доступ через наследование . class a :: public auto

  • @НастяПупс-ж4е
    @НастяПупс-ж4е 6 лет назад

    Помогите, пожалуйста!!!
    Я написала класс,как вы и говорили и показывали, но подчеркивает cin, cout и пишет "cin does not name a type" так же и для cout .

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

      пропиши using namespace std; в начале программы еще до всех функций и классов....

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

    а если я еще хочу что бы у меня писался цвет типо "orange",как это сделать?

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

    Скажи пожалуйста, а что за компилятор это у тебя?

  • @АвтосервисГАрАж
    @АвтосервисГАрАж 5 лет назад

    #include
    #include
    #include
    #include
    #include
    using namespace std;
    class Tree {
    private:
    int number, number_List;

    public:
    void message() {
    cout

  • @ori-d
    @ori-d 5 лет назад +1

    В чем отличие структуры от класса (естественно в с++)?

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

      Как минимум в том,что ты можешь прописывать функции внутри класса(в отличие от структуры),применять наследование

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

      @@milkyshake5902 Бред.

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

      В с++ вообще нет никаких структур. Пусть название ключевого слова struct не вводит вас в заблуждение. На самом деле оно описывает класс, а не структуру. При использовании ключевого слова struct, модификатор доступа к членам и наследование по умолчанию являются публичными, в то время как при использовании ключевого слова class, модификаторы доступа и наследования являются приватными.

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

    Вот мое скромное Д/З ))
    Хотел создать несколько классов с разными значениями, но после, ничего не хочет работать (не найдена точка входа). Я так понял, что залез дальше, за рамки этого урока.
    Ну а так, вот:
    #include
    using namespace std;
    class Auto {
    private:
    int Количество__ядер, RAM_, Емкость__аккумулятора;
    float Частота__CPU;
    public:
    void message() {
    setlocale(LC_CTYPE, "rus");
    cout

    • @user-nj5pp7ug8g
      @user-nj5pp7ug8g 5 лет назад

      Исправил твои ошибки.
      Вот рабочий код:
      #include
      using namespace std;
      class Auto {
      private:
      int Количество__ядер, RAM_, Емкость__аккумулятора;
      float Частота__CPU;
      public:
      void message() {
      setlocale(LC_CTYPE, "rus");
      cout

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

    А если я захочу поменять параметр shkoda, например год, как это сделать?

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

    Гоша, посоветуй. Как лучше запомнить ООП. Я вроде понял. Но запомнить, трудновато.

  • @ДмитрийРоманчук-ч4т

    а есть ли в С++ Getter и Setter?

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

    Моё ДЗ:
    #include
    #include
    using namespace std;
    void menu();
    class Game {
    private:
    int date[3], price, PEGI;
    public:
    char name[20];
    void set() {
    cout > name;
    cout > date[0];
    cout > date[1];
    cout > date[2];
    cout > price;
    cout > PEGI;
    }
    void get() {
    cout

    • @mironstav2-223
      @mironstav2-223 Год назад

      Спс мне как раз нужен был чей то код где я смогу разобратся

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

      @@mironstav2-223 жесть ты древность откопал

  • @oksid9133
    @oksid9133 7 лет назад +12

    ООП и 2я машина появилась!)

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

      хахахах

  • @stickmanlegends2418
    @stickmanlegends2418 10 месяцев назад

    Ввел вроде бы все правильно,но на консоли выводит только class is working. Кто нибудь сталкивался с таким?

  • @ИванСтасюк-с8х
    @ИванСтасюк-с8х 7 лет назад

    Почему первая програма не работает VS2017?

  • @face863
    @face863 5 лет назад +3

    А зачем создавать 2 функции в классе,если можно было этот cout написать в функции set?

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

    2:07 мат хотел сказать

  • @АртемАртемьев-з4к
    @АртемАртемьев-з4к 6 лет назад

    Кто-нибудь может сказать в чем отличие структуры от классов??

  • @ЕкатеринаТемникова-и1д

    красИвее ):

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

    2:09

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

      @@AlexanderSemenko это ху... это плохо

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

      @@AlexanderSemenko Нет, не весь. Зачем вы балаболите о том, в чем не разбираетесь?

  • @ЛесяФОРОЩА
    @ЛесяФОРОЩА 5 лет назад

    #include
    #include
    using namespace std;
    class Dom {
    private:
    int wide, length, age;
    string type;
    public:
    void set(int _wide, int _length, int _age, string _type) {
    wide = _wide;
    length = _length;
    age = _age;
    type = _type;
    }
    float perimetr(int wide, int length) {
    return wide + length;
    }
    float square(int wide, int length) {
    return wide * length;
    }
    float price(int age) {
    float res = square(wide, length) / perimetr(wide, length)*pow(age, 2);
    return res;
    }
    void info() {
    cout

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

    Странно у меня почему то ошибку выводит!

  • @ГерычВаркрафт
    @ГерычВаркрафт 7 лет назад

    а как слово вывести то ?

    • @ГерычВаркрафт
      @ГерычВаркрафт 7 лет назад

      Никита Абраменко ,а имею ввиду как с клавиатуры ввести...

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

    "это х, это плохо" ©

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

    Объясните, пожалуйста, как выводить строки с помощью классов, а не только тип int

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

    А че за IDE кстати?

  • @mr.drakkid6936
    @mr.drakkid6936 6 лет назад +2

    А про protected: забыл, печально...

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

    в начале было все понятно но потом начал совмещать публичный и закрытый клас мозги взорвались

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

    Я придумал термин «объектно-ориентированный», и я уверяю вас, что не имел в виду C++ ©Алан Кей

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

      Начиная с 1984, Кэй был ведущим исследователем (Apple Fellow) в Apple до закрытия группы перспективных технологий (ATG), одного из отделов исследований и разработок. Тогда он присоединился к Walt Disney Imagineering в качестве главного исследователя (Disney Fellow) и оставался там до тех пор, пока Дисней не закрыл свою программу Disney Fellow. Позже Кэй работал в команде Applied Minds, затем стал главным сотрудником (Senior Fellow) в Hewlett-Packard, пока HP не распустил команду перспективных исследований в области программного обеспечения 20 июля 2005 года.
      Теперь понятно, почему Smalltalk не взлетел.

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

    Можно не создавать метод get, а его содержимое просто написать в set.

  • @АндрейГридлик
    @АндрейГридлик 2 года назад

    Что такое класс? Что такое объект?

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

      Объект - область памяти.
      Класс - тип данных. Определяет содержимое объекта, а так же методы для его обработки.

    • @АндрейГридлик
      @АндрейГридлик Год назад

      @@princessmary5556 В такой формулировке я не вижу разницы с Цэ без плюсплюс. Всё данные и там находятся в какой-то области памяти. Со всеми данными так или иначе и там работают. Ещё раз, я ничего при этом не "пытаюсь"! Я просто не понимаю, зачем слово функции заменили на слово методы, зачем набор данных заменили на слово класс? А в итоге не могу думать в формате С++. Более того, я в своё время занимался и преподавательской деятельностью и из этой работы я вынес стойкое убеждение, что прежде, чем ученику что-то объяснять, нужно выяснить, что у него в голове сложилось не так. Другими словами: "Ты думаешь и уверен в том, что видишь на небе звезды со всей Вселенной, а это не так. Ты видишь звёзды только находящиеся в нашей галактике. Да и то, только небольшую часть из 300 миллиардов оных." Вот как-то так. Кстати, примерно так же я в своё время объяснял понятные мне вещи, но непонятные однокурсникам.

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

    Функции используют классы? Что дальше, ноги используют человека? Может наоборот?

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

    шкода правильно пишется без h: skoda

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

    А ЗАЧЕМ тогда в прайват пихать данные, если их потом изменять через паблик

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

      Это принцип инкапсуляции, почитай в инете на эту тему. Там более подробно описано, чем я смогу тебе обьяснить.

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

      Константин Галицкий я знаю примерно что это

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

      ►Без привата выходит короче. Разумеется, Гоша просто показывает, что так можно, но если оптимизировать именно этот код, то будет так:
      #include
      using namespace std;
      class Auto
      {
      public:
      int year, month, day;
      void message()
      {
      cout

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

    одно не понятно, для чего нужны классы и структуры

    • @ГлібМаліков
      @ГлібМаліков 7 лет назад +1

      в классы ты можешь добавлять методы и функции

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

    Одноклассники в деле

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

    Парень, похоже, сам не понимает сути ООП, если описывая ООП, он по сути описывал преимущества процедурного программирования. В ООП главная мысль совсем в другом. Идеальный ООП код не содержит глобальных переменных, а все объекты не спутаны между собой нитями взаимосвязей. Любой объект можно заменить и не придётся переписывать под эту замену половину кода как в процедурном программировании.

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

      Можете скинуть нормальный курс или видео обучение?

    • @ОлегФурзиков-ж1х
      @ОлегФурзиков-ж1х 3 года назад

      Действительно, вообще не понимает, великолепная и большая тема про ООП, а у него просто бред.

  • @Андрій-ь4ц6ч
    @Андрій-ь4ц6ч 6 лет назад

    Моё дз) Знаю поздно но что поделать)
    Если здесь кто-то ещё есть подскажите как улучшить мой этот мини код, может его можно уменьшить?))
    #include
    using namespace std;
    class Auto {
    private:
    int year, month, day;
    public:
    void message () {
    cout

    • @БогданШилов-ж3ч
      @БогданШилов-ж3ч 6 лет назад +1

      В функцию get помести ещо один параметр - название автомобиля.И при вивода на екран виводи не разние функции а одну но с разними значениями етой переменной.Тоесть с разним названием
      P.S.Извините за руский.Я украинец русский знаю плохо а пишу на нем чмсто из уважения к собеседнику.На момент написания коментария 13 лет.

    • @Андрій-ь4ц6ч
      @Андрій-ь4ц6ч 6 лет назад

      Богдан Шилов, спасибо за ответ

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

      Привет спустя 5 лет , ты уже стал програмистом ?🙂🙂🙂

    • @Андрій-ь4ц6ч
      @Андрій-ь4ц6ч Год назад

      @@mbpdddнет

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

      @@Андрій-ь4ц6ч печально

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

    Не много не правильно объяснил суть функции set. Попробуй вызвать таким образом, shkoda.set(-32, 35, 'W'); и посмотри что выведется на экран. Чтобы такого не произошло в функции set ВСЕГДА производиться проверка на корректность принимаемых данных. Так как класс закрытый ящик, то ошибочные данные могут убить всю программу.

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

    0

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

    Классы свободно можно помещать функции, такие классы называются локальные...даже в замыканиях лямбд их можно определять...прежде чем болтать чухню на видео лучше бы матч-часть разбирал

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

    Паблык. Так раздражает.

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

    Правильно пишется Škoda

  • @ДмитрийВсемогущий-я2и
    @ДмитрийВсемогущий-я2и 8 месяцев назад

    ничё так и не понял. Куча граблей для того чтобы воспользоваться одной функцией которую и так можно было написать.