CLASSES in C++

Поділитися
Вставка
  • Опубліковано 15 чер 2024
  • Twitter ► / thecherno
    Instagram ► / thecherno
    Patreon ► / thecherno
    Series Playlist ► • C++
    BEST laptop for programming! ► geni.us/pakTES
    My FAVOURITE keyboard for programming! ► geni.us/zNhB
    FAVOURITE monitors for programming! ► geni.us/Ig6KBq
    MAIN Camera ► geni.us/t6xyDRO
    MAIN Lens ► geni.us/xGoDWT
    Second Camera ► geni.us/CYUQ
    Microphone ► geni.us/wqO6g7K
    Slack ► slack.thecherno.com
    Stream ► / thecherno
    Website ► www.thecherno.com
    Facebook ► / thecherno

КОМЕНТАРІ • 400

  • @huntersan9
    @huntersan9 6 років тому +1050

    I can't stop looking at the chicken.....

  • @electronix259
    @electronix259 6 років тому +894

    Each of these 10 minute videos teach me more than one class

    • @themanwhich123456
      @themanwhich123456 4 роки тому +9

      fuck yeah.

    • @CupOfWhiskey
      @CupOfWhiskey 4 роки тому +35

      No joke, I learned more in two videos 16min total than I did in my 2hr class

    • @timeflies98
      @timeflies98 3 роки тому +2

      glad I'm not the only one

    • @michaelnolan8719
      @michaelnolan8719 3 роки тому +8

      Professor Xing ain't got nothing on Cherno, Easy A for data structs. ;)

    • @pierfrancescopeperoni
      @pierfrancescopeperoni 2 роки тому

      True, you can play videos faster on UA-cam.

  • @xyz8206
    @xyz8206 4 роки тому +128

    3:43 'variables that are made from class types are called objects' this line just made everything so much easy. Thank you.

  • @zzzMrgamerzzz
    @zzzMrgamerzzz 4 роки тому +165

    Never in my Uni days have I seen such a good youtube tutor. Clear, succinct and everything seems so much simpler

  • @ToxicityGameDev
    @ToxicityGameDev 6 років тому +528

    Soooooo.... Udemy ads keep playing on these videos telling me to sign up for a C++ course on there... Pfff, wrong place to advertise guys lmao.

    • @Gilpow
      @Gilpow 6 років тому +16

      Sure, because clearly you're going to learn a lot by using a single source, right?

    • @timmoth_j
      @timmoth_j 6 років тому +45

      Using an adblocker will stop the Cherno from earning money from these videos, regardless of how smug and annoying the Udemy guy is I still choose to watch the adverts to support the Cherno.

    • @Gilpow
      @Gilpow 6 років тому +13

      Timothy Jones Yup, it's the least we can do, if we can't support him on Patreon.

    • @batabatonica
      @batabatonica 6 років тому +12

      They are spamming me python and html, but i watch them anyway to help Cherno

    • @ToxicityGameDev
      @ToxicityGameDev 6 років тому +8

      @Gilpow, really dude... you take all of life so serious? @Dany na, I prefer to help him get those pennies that stack up from the ad views ;-)

  • @serkanozturk4217
    @serkanozturk4217 Рік тому +62

    Personal notes:
    -Members are private by default
    -Classes allow us to group variables into a user-defined type and also add functionality to those variables

    • @goodvibes7304
      @goodvibes7304 5 місяців тому

      And those functions are called methods inside the classes.

  • @faizalimuhammadzoda4731
    @faizalimuhammadzoda4731 6 років тому +171

    I like the way you explain things: very simple, very fast and most importantly-nothing outside the topic. Thanks.

  • @oquaika-qua3043
    @oquaika-qua3043 4 роки тому +28

    Coming from a C background and just learning C++, I have had so many people try to explain the concept of classes, but until watching your video I have never fully understood it. Thank you so much.

    • @rzmadzore
      @rzmadzore 2 роки тому +1

      same here, what a relief

  • @colorlord98
    @colorlord98 7 років тому +143

    Still waiting for that video on the back of a kangaroo!

  • @jaidev2717
    @jaidev2717 3 роки тому +1

    Can't appreciate this series enough..excellent job...Best things is your videos aren't boring like other programming videos. Keep it up man. May god bless you.

  • @nortski78
    @nortski78 4 роки тому +4

    I'm so glad you decided to ease up on the music, it makes it so much easier to concentrate on what you're saying.

  • @mukundchandrahasan5890
    @mukundchandrahasan5890 5 років тому +31

    Just came by to learn more from my University C++ class, and I got to say I love how your video is succinct and concise. No extra flowery wording, just straight to the point. But you do so in a way where we can understand, so you have that perfect sweet spot in teaching. Appreciate it, and I'm glad I came across your channel.

    • @zes3813
      @zes3813 2 роки тому

      wrgg, no such thin gas extra or succx or concisx or point or etc, say, can say infix any nmw and any s perfect

    • @biqbicle4982
      @biqbicle4982 Рік тому

      @@zes3813 ??

  • @mtareen
    @mtareen 4 роки тому +13

    I wish learning C++ was this easy. Having worked in C++ for 8 years in the past, it takes a long time to understand these concepts

  • @SkeletonSSBM
    @SkeletonSSBM 3 роки тому +1

    Thank you so much! Simple and to the point, yet has great explanations for the things he's doing. Nice work!

  • @akberalikhan4659
    @akberalikhan4659 4 роки тому +2

    Explained it quickly and clearly. Saved me a lot of time. Thanks!

  • @leixun
    @leixun 4 роки тому +15

    *My takeaways:*
    Class is a way to group data and functionalities together 0:55

    • @rasta6332
      @rasta6332 3 роки тому +2

      looking for your comment and found it... I hope you have a summary of all the upcoming videos in the playlist.

    • @leixun
      @leixun 3 роки тому +1

      Rasta Thanks, I did write summary for most videos in the playlist, but some of them are more complete than others :)

    • @Aditya-zl8sn
      @Aditya-zl8sn 3 роки тому +1

      commenting for visibilty

  • @minecetinkaya5763
    @minecetinkaya5763 6 місяців тому

    Perfect!!!!! How could you explain so simple. I read and watched videos but this is the most understandable way of this topic. Thank you so much.

  • @rcookie5128
    @rcookie5128 7 років тому +6

    Structs could have been mentioned as well in this video I guess, but not necessarily.
    Great job, as always! now to the other columns of OO programming! :)

  • @rachidajewher8649
    @rachidajewher8649 3 роки тому

    i like the way you are teaching people you are explaining everything in a higher speed you get the global vision of the subject instantly

  • @Hydro1738
    @Hydro1738 5 років тому +1

    Dude, your explanations are really impressive ... I like your KISS approach ...

  • @streetfighteryamahar178
    @streetfighteryamahar178 5 років тому +1

    Very clear and understandable video with relevant examples. Thank you.

  • @ezert_13
    @ezert_13 5 років тому +4

    I'm sure I'll recommend this course for a lot of people in the future! : D

  • @r0_
    @r0_ 4 роки тому +1

    This is the best explanation i've seen. every video/tutorial didn't help me. i tried for a few months but this is the only one i consider good

  • @bayroncastillo7653
    @bayroncastillo7653 5 років тому +1

    you are so good at explaining , thank you

  • @yahiashams2334
    @yahiashams2334 3 роки тому +4

    So a class is essentially a struct that can have functions.

    • @crashtagiyevpirt
      @crashtagiyevpirt Рік тому

      ​@Artem Katerynych And Struct is in Stack andClasses in Heap

  • @calecacciatore5422
    @calecacciatore5422 5 років тому +7

    Hey Cherno, trying to get back into the programming world, a few questions popped into my head : what do you think about Data Oriented Design (vs. Object Oriented) ?
    How effective can one use and understand DOD vs OOP ? or should i just stick to procedural kind of programming, that is, use C++ only where needed and mostly stick to C ?
    I want to be able to understand the computer and what it is doing for performance reasons. What s the speed difference in those applications between the two designs ?
    there s just not many resources around to poke into.

  • @nemanjakatava4735
    @nemanjakatava4735 3 роки тому +1

    found your tutorials very useful, well done

  • @dildarsk246
    @dildarsk246 6 років тому +269

    Cherno becomes teacher.
    100% boys' attendance.
    *200%* girls' attendance.
    *H a n d s o m e*

    • @amndrkwe
      @amndrkwe 3 роки тому +26

      Michael O'Connell if you count us it would be probably 500%

    • @essmunson
      @essmunson 3 роки тому +6

      @@amndrkwe agreed

    • @RoySATX
      @RoySATX 3 роки тому +1

      More like 110% boys attendance, I know I'd be auditing this course

    • @iamtrash288
      @iamtrash288 3 роки тому +2

      Shadow clone no jitsu

    • @suntzu1409
      @suntzu1409 3 роки тому +4

      Gaes: ( ͡° ͜ʖ ͡°)

  • @danielrousseau6541
    @danielrousseau6541 5 років тому +1

    This kind of format is definitely better for both teaching and learning.

  • @skayland
    @skayland 3 роки тому +1

    Wow that was super simple and well explained. i think I'm gonna watch the whole series now lol

  • @simon39wang43
    @simon39wang43 2 роки тому

    This vid is sooo helpful, so clear, so efficient ❤️

  • @nafimulyo9739
    @nafimulyo9739 Рік тому

    such a great video. i am beginner and i still understand all of the stuffs that you teach to us! Well done! Thanks :D

  • @Ferocious_Imbecile
    @Ferocious_Imbecile 2 роки тому

    It's always a relief to find somone that makes an impermiable thicket of jargon become meaningful.

  • @rando521
    @rando521 8 місяців тому

    you are extremely coherent and i love it.

  • @mohit7717
    @mohit7717 4 роки тому

    thank u so much for providing this c++ series .

  • @chastitywhiterose
    @chastitywhiterose 4 роки тому +1

    I've done many hobby programming projects over the years and yet I've stuck with C and never used object oriented features. However I have seen this and other examples of how it can allow doing the same things I'm doing in a lot less code. I'm doing graphics programming and so an image class makes sense as each image will have its own pixel array and width and height.

  • @emilycs8823
    @emilycs8823 2 роки тому +1

    These videos make these concepts so simple. I learn more from them than my professors lectures , and college c++ textook.

  • @TerranIV
    @TerranIV 2 роки тому

    Thanks for this great overview!!!

  • @FlooferLand
    @FlooferLand 3 роки тому +5

    1:42 "You can probably start to *C* that this is getting a little bit messy"
    and that relates to how C doesn't have classes lmao

  • @marshalstewart7776
    @marshalstewart7776 5 років тому

    Super helpful!!! Love your videos!!!!

  • @jmac217x
    @jmac217x Рік тому +2

    In 3 min you've explained classes better than anyone and with examples of references too kudos

  • @sidharthsk84
    @sidharthsk84 Рік тому

    really helpful and resourceful.

  • @shrikant_paliwal
    @shrikant_paliwal 2 роки тому

    Bohot hi Pyara Explanation. (Really Nice Explanation of the concept). Thank You

  • @user-kb3zt3cv9s
    @user-kb3zt3cv9s 5 місяців тому

    this video really helped me understand Classes in C++ thanks cherno♥

  • @vidyutphagetra3804
    @vidyutphagetra3804 3 роки тому +1

    you have a gift of explaining things precisely and without all the bullshit

  • @user-xg2bp5kq9t
    @user-xg2bp5kq9t 7 місяців тому

    Great lesson! Thank you!

  • @accessdenied9393
    @accessdenied9393 2 роки тому +6

    Or more simply, we can declare the move function inside the class and define it outside the class.
    class Player
    {
    public:
    int x, y;
    float speed;
    void Move(int xa, int ya);
    };
    void Player::Move(int xa, int ya)
    {
    x += xa * speed;
    y += ya * speed;
    }
    int main(void)
    {
    Player player;
    player.x = 1,
    player.y = 2;
    player.speed = 3.4;
    player.Move(1, 2);
    }

  • @cheako91155
    @cheako91155 5 років тому +1

    C also has objects these are singular, structures, and arrays. Any of them could hold a pointer to a function and when u call a function through such a pointer that's exactly when things transition into OOP.

  • @autumnleaf8483
    @autumnleaf8483 3 роки тому +2

    This is like Roblox Studio Development where everything has a classname, with its own functions! Thanks for the tutorials! I am loving it!

  • @christophersheppard3249
    @christophersheppard3249 3 роки тому +14

    Wow, in 8 minutes you managed to teach me better than my actual cs teacher.

  • @MrHaggyy
    @MrHaggyy Рік тому

    There is one thing that classes do automatically for you that's quite hard and not fully achievable by C. And that's typesafety at compile time. You can typedef structs in C, but you can walk around the typecheck by accident or on purpose. C++ on the otherhand will always give you an compile error if you work with object's of different types, unless you provide a function or overwrite an operator that gives meaning to that combination of types.

  • @mardiyonghasben1619
    @mardiyonghasben1619 7 місяців тому

    thanķ you sir....and godbless you...give all human education about and learn programming c++...thank you

  • @bencilbusher5070
    @bencilbusher5070 2 роки тому +1

    it wasn't until I watched this video did I finally understand exactly why OOP is easier. thanks to juxtaposing the function straight to the class function.

  • @Rose_Harmonic
    @Rose_Harmonic 3 роки тому

    my brain is exploding with understanding and I am very excited.

  • @sacredgeometry
    @sacredgeometry 3 роки тому

    C# is most certainly not just OO anymore its definitely well seated as a multi-paradigm language and has been for many years. With things like ReactiveX you have data-flow, with LINQ you have functional, both are those are heavily declarative but c# is obviously also heavily imperative, reactive is data driven but async/await sand the TPL is task driven, it has very mature reflection it can easily be written procedurally.
    It is basically the programming language equivalent of what English is to spoken language.
    It takes good ideas, finds really robust implementations and then improves on them.

  • @javand86
    @javand86 2 роки тому

    So easily understandable.
    Subbed

  • @choppedsirloin9215
    @choppedsirloin9215 3 роки тому

    This was an awesome explanation! I have done a little bit with UE4 blueprints so it made some things easier to understand, so hopefully the transition to C++ won't be too brutal outside of perhaps the syntax. I have a question though, would there be any reason for someone to want to use a function outside of a class as opposed to nesting it inside a class to make it a method?
    Because from how I'm seeing it, by making it a method, its much easier to use your code and it eliminates the need to have to create reference variables and pass those reference variables around.

  • @adrmad8849
    @adrmad8849 2 роки тому

    Great explanation m8!🔥

  • @GetBoros
    @GetBoros 10 місяців тому

    Nice example of POD (Plain Old Data) type.

  • @aideenfay3055
    @aideenfay3055 5 років тому +2

    Thank you so much

  • @abx4t
    @abx4t 3 місяці тому

    A side note. If you were to print x or y in the state of the code at 8:03, you would get a completely unknown value.
    This is because, as he talked about in previous videos, when the variable is created it get assigned a memory address.
    We have no idea what previous data was in that memory address, it could be anything.
    Thus, if you print it without initializing it, most often, it will be a seemingly random integer value left over from the last variable (even from another program) that used it.
    As a result, ALWAYS initialize your variables people. ALWAYS.

  • @roja
    @roja 2 роки тому

    Commenting for your exposure. The best channel on UA-cam for C++ !!!

  • @chalkchalkson5639
    @chalkchalkson5639 7 років тому +11

    "there is nothing you can do with classes you couldn't do without them" Yeah, C is turing complete and doesn't have classes, but so is assembly or colouring squares on a piece of paper... Just because you could technically do all the same things doesn't mean that anyone on earth is actually capable of doing so :P

    • @FalconGames109
      @FalconGames109 7 років тому +9

      C still has things like structs, function pointers, etc. that can accomplish any OOP stuff in about the same amount of code. As opposed to, e.g. templates, which have no real correspondence with any C features.

    • @zfolwick
      @zfolwick 3 роки тому +3

      You can actually define classes in C. But why would you want to? It important to know in legacy codebases

    • @suntzu1409
      @suntzu1409 3 роки тому

      ( ͡° ͜ʖ ͡°)

  • @gurjindersingh3843
    @gurjindersingh3843 4 роки тому +2

    C++ is called C++ because in C "++" was used to increase the value of variable by 1. So if C=1. C++ = 2.
    Which is to say, C++ is an incremented improved version of C.

  • @AlbertoRivas13
    @AlbertoRivas13 4 роки тому

    Great explanation fam thanks a lot

  • @luobei5083
    @luobei5083 3 роки тому +1

    group the variable into a type and add functionality to those variables.

  • @jandynotaloca
    @jandynotaloca 3 роки тому

    thank you so much, every other video doesn't explain it thoroughly.

  • @gdubs210
    @gdubs210 2 роки тому

    I learned so much from this video, the confusion and worry I had is gone.

  • @matteopiccioni196
    @matteopiccioni196 Рік тому

    Very nice.. explicative, I just subscribed to your channel

  • @hamidrezarahimi6651
    @hamidrezarahimi6651 3 роки тому

    Thank you

  • @shaikarshad9670
    @shaikarshad9670 6 років тому +1

    awesome teaching bro....

  • @dalyzee
    @dalyzee 6 років тому +2

    You just earned a sub.

  • @tetlleyplus
    @tetlleyplus 4 роки тому

    Simply awesome!

  • @youssofprogrammer7546
    @youssofprogrammer7546 Рік тому

    you are amazing man

  • @IntegralDeLinha
    @IntegralDeLinha 2 роки тому

    Very didactic! Thank you!

  • @benixmo
    @benixmo 3 роки тому +2

    I've been using python and golang but honestly I am going to use C++ from now on.
    Literally every video you have with a "new" concept just leave me thinking "Wow that's really cool", C++ seems like the perfect language.

    • @tomjesten3945
      @tomjesten3945 3 роки тому

      Depends on what you want to do with C++.

    • @kylekastilahn
      @kylekastilahn 3 роки тому +1

      If you're learning to code any of these are fine to learn in C++/C#/Python/Java/Javascript in my opinion. I would recommend playing around with a few of them just to get a feel for what you like. I wouldn't worry so much about "learning" the language, as much as learn to code, to start off because a lot of the basics/concepts are very similar. As one progresses it really depends on what is your path / end goal (use the right tool for the job). Each language is a tool, there are pluses and minuses to each. Personally would recommend Python/C#/Javascript to beginners because I think they are the most straight forward and have many branches and uses one can do particularly if you're not sure of your path.

  • @fsk648
    @fsk648 7 років тому +1

    You kinda look like Luke Steele from Empire of the Sun, you even have the same nationality.
    Keep up these golden tutorials man.

  • @rad5105
    @rad5105 2 роки тому

    thanks so much

  • @hopp.nguyen
    @hopp.nguyen 7 місяців тому

    thank you

  • @primalpimmy
    @primalpimmy 5 років тому +2

    You sir, deserve more Subs.

  • @Hydra_Kumo
    @Hydra_Kumo 2 роки тому

    Thanks Your So Helpful :D

  • @zinoarivinov739
    @zinoarivinov739 4 роки тому

    Thank you brooo 💖💖

  • @mojosace
    @mojosace 5 років тому +1

    Genius. Learned more in this than in one whole lecture with my awful professor

  • @danenmamaruka5213
    @danenmamaruka5213 3 роки тому

    Thanks

  • @ximerenteria9205
    @ximerenteria9205 3 роки тому

    THANK YOU SO MUCH :)

  • @user-tp3ux1qy8w
    @user-tp3ux1qy8w 6 місяців тому

    Thank you for simplifying classes for me in c++

  • @jonathanlevin7660
    @jonathanlevin7660 3 роки тому

    About C# being exclusively Object-Oriented - While it's true that C# was originally made to be an cleaner, object oriented alternative to Java, It's actually moving more and more to the functional paradigm in recent years, including borrowing many features from F#.
    Also I'm not a Java dev but pretty sure it also has Lambdas as of Java 8, though afaik on the JVM there are other languages much preferred for functional programming (Scala, Kotlin etc)

  • @mustafaglnr8780
    @mustafaglnr8780 5 років тому +5

    Any thought you have, to build up an episode relative with Polymorphism ?
    if no, please ...

  • @chiyungchu9463
    @chiyungchu9463 3 роки тому

    use alt+ up arrow to move selected line up in case u dont know .(go to Edit > Advanced)

  • @ahmedghallab5342
    @ahmedghallab5342 Рік тому

    شكرا جزيلا ♥️ thank you

  • @PythonisLove
    @PythonisLove 2 роки тому

    youtube sucks, it didn't recommend your video, while I was actually learning c++, now it's again making things interesting!

  • @Bob-zg2zf
    @Bob-zg2zf 5 років тому

    Fantastic vid.

  • @zb4055
    @zb4055 Рік тому

    great explanation :)

  • @pewpew4663
    @pewpew4663 6 років тому +1

    For a split second I thought there was a real chicken behind you just chillin there.

  • @alang117
    @alang117 7 років тому +1

    I've been watching this series since the first video and I have a question. I have been learning java and now want to start 2d game development with it but the thing is I don't know how to start. Is it right to look at videos online and copy their code to make your own games with it or is it better to solve it on your own and write your own code without looking at peoples tutorial.

  • @prajjwalyadav3801
    @prajjwalyadav3801 5 років тому +6

    it's nice to have a background music in the tutorials so that you don't feel sleepy ; P

  • @henkee9554
    @henkee9554 Рік тому

    Great video

  • @sumedhagosavi8420
    @sumedhagosavi8420 6 років тому +1

    Loved it

  • @li-pingho1441
    @li-pingho1441 4 роки тому

    Amazing .

  • @geileschnecke3912
    @geileschnecke3912 3 роки тому

    wow! classes are heaven