Functions in C++

Sdílet
Vložit
  • čas přidán 7. 09. 2024

Komentáře • 344

  • @cern1999sb
    @cern1999sb Před 4 lety +291

    As a second year Computer Science undergrad with plenty of experience coding in other languages, I usually find code tutorials extremely dull, but you point out a lot of the intricacies of C++ and explain things concisely, so these videos have actually been very interesting so far. Thanks very much for making this series!

  • @themodernshoe2466
    @themodernshoe2466 Před 7 lety +425

    This is full-time youtuber tutorial quality. Thanks so much for this series and sticking with it

    • @MrIneedalifenow
      @MrIneedalifenow Před 4 lety +30

      I'm from the future and he is a full time youtuber now, you were right

    • @Shishio
      @Shishio Před 2 lety +3

      I am also from the future and I can confirm he is still to this day a full time CZcamsr

    • @RaphaelGo
      @RaphaelGo Před rokem +3

      I'm also from the future, he's still going for the grind

    • @abhijeetsingh9213
      @abhijeetsingh9213 Před 10 dny

      I am also from the future and he’s still going strong.

  • @pixelwrinkly1528
    @pixelwrinkly1528 Před 3 lety +28

    i'm fast approaching my 64th birthday
    it's like having my grandson teach me c++
    wonderful stuff
    many thanks for sharing your knowledge

  • @crysist13
    @crysist13 Před 7 lety +160

    I'm a CS student and so far everything we do is in Java. I've always wanted to get into c++ and then wham! Cherno comes in clutch. Thx for doing this

    • @ashishkalam9337
      @ashishkalam9337 Před 3 lety +3

      C++ isn't all that fun, it's necessary for some companies and platforms and is otherwise inconvenient.
      Java is the way to go honestly.

    • @Daniel-be1xn
      @Daniel-be1xn Před 3 lety +36

      @@ashishkalam9337 i think he already graduated bro

    • @GamestarsBulgaria
      @GamestarsBulgaria Před 3 lety

      And? How's it going now? Did you learn c++, did you find a job?

    • @bluesillybeard
      @bluesillybeard Před 3 lety +3

      same! I do like how convenient Java is though, so whenever performance isn't a requirement I'll probably just use Java...

    • @goated-yt2370
      @goated-yt2370 Před 3 lety +5

      @@ashishkalam9337 it all depends, it may not be fun to you but for someone else it is

  • @bigchillentente
    @bigchillentente Před 4 lety +33

    This is the only CZcamsr that actually breaks these concepts down. 10/10 best series

  • @voze1905
    @voze1905 Před 7 lety +42

    And again, the quality of this video is truly stunning.

  • @MiningMadness0029
    @MiningMadness0029 Před 7 lety +241

    What?! A midway video? Am I dreaming? Has Cherno gone crazy?!

    • @resantic2256
      @resantic2256 Před 7 lety +6

      Cournaut Midweek*

    • @needlessoptions
      @needlessoptions Před 7 lety

      Resantic
      Hey Geoff, when you gonna make the drop?

    • @merijnvinea3546
      @merijnvinea3546 Před 7 lety +1

      Cournaut idk but for sure: im going crazy 2 vids in the week!!!!!!

    • @resantic2256
      @resantic2256 Před 7 lety

      anthony-y what

    • @needlessoptions
      @needlessoptions Před 7 lety

      Resantic
      Don't do this to me man. We can't discuss the details here. The er... drop. When you dropping that stuff off that I asked for?

  • @IcanFlame777
    @IcanFlame777 Před 7 lety +44

    I haven't even started learning C++ yet, but I'm really enjoying watching these videos. They're still very useful information even for other languages.

    • @Plasticcaz
      @Plasticcaz Před 7 lety +22

      I think it's important to understand concepts that C and C++ teach you even if you only program in higher level languages.
      It's good to know what the higher-level languages are doing for you behind the scenes, so you have an idea of what everything is costing you (in terms of performance, etc). That way you understand the tradeoffs you are making.

  • @Xyral_
    @Xyral_ Před rokem +2

    The final product of your multiplication program is actually still messy.
    Cleaner version which does the same thing:
    #include
    void MultiplyAndLog(int a, int b)
    {
    std::cout

  • @weendylry5598
    @weendylry5598 Před 3 lety +1

    I like how fast you talk. I consume the words by a huge block of many sentences instead of one word by one word. Thanks to this, you managed to shrink 2 hours of lecture on Functions in C++ in less than 10 minutes. You are God sent

  • @samdavepollard
    @samdavepollard Před rokem +3

    for me the secret sauce in these wonderful videos is The Cherno's obvious passion for the subject
    it comes through loud and clear every time
    lots of youtubers grind out the vids for the likes and subscribes but this guy not only knows his subject he actually loves it, too

  • @MarcusTL12
    @MarcusTL12 Před 7 lety +22

    The only problem with this series is that the videos dont come that often, so this was a pleasent supprise :D

  • @TheOnlySilverUnicorn
    @TheOnlySilverUnicorn Před 4 lety +5

    Oh my God! Thank you, dude! You rock! I was struggling with even the most basic functions. I'm so brand spanking new to C++, I didn't even know how to label what I was struggling with or ask the right questions to get help from my instructor or my peers or my tutor or anyone. But you made it crystal clear! I wrote a tiny program from scratch just to practice what you taught, and it ran and behaved as I intended, thanks to you! Aaaaand... it turns out that was the only place where I was stuck (so far) so I was able to get the program assigned to me up and running as intended, too. Thank you!

  • @Vazzible_gaming
    @Vazzible_gaming Před rokem

    God, I feel like I finally understand a tutorial, I never understand tutorials I don't know why I even try to start those 9-hour 22-hour 30-hour masters courses on programming. This is digestible, this is the most comprehensive c++ tutorial I've ever watched because I actually took home some information.

  • @not2day646
    @not2day646 Před 5 lety +12

    you sir have earned yourself a sub. The quality of these tutorials is truly amazing. You describe things in exactly the style I like.

  • @gamesbynull6528
    @gamesbynull6528 Před 7 lety +5

    I love the direction this c++ tutorial is going! You were a huge inspiration for me to start programming java games on my channel, and I am excited to see where this new series goes!

  • @informativecontent4778
    @informativecontent4778 Před 6 lety +1

    5:10
    hope this source code helps if you've had any problem understanding
    #include
    using namespace std;
    void mullog();
    int mul(int x,int y){
    return x*y;
    }
    int log(int a,int b){
    cout

  • @thinkalvb
    @thinkalvb Před 6 lety +2

    I think that modern compilers won't really care if a function is inline or not, they rather use algorithms to make assumptions to decide whether to make them inline or not. Correct me if I am wrong, please do continue this... I will surely contribute as soon as I get a job - you are making my days great with c++. Learned a lot from you; really really inspirational and knowledgeable.

  • @SirLightfire
    @SirLightfire Před 4 lety +4

    7:08, Another, more subtle, benefit to using functions is to visually, and semantically, separate logic into discrete chunks. This makes it muuuch easier to quickly parse out what a function is doing, if the individual parts of the parent functions are themselves functions. It also forces the programmer to indicate (via function signatures) which code uses which variables. This makes for more maintainable code, since it becomes much clearer where a variable is used, and what changing it will impact.
    General rule of thumb, is to keep functions no longer than one screen tall. Of course, it's a hard rule to stick to (especially when declaring a bunch of inline data), but it's a really good indicator that a function is getting too long.

  • @user-xc5xf8gp8n
    @user-xc5xf8gp8n Před 4 lety

    Ok first of all, I really did paused the video and went to instagram to actually follow you.
    That edit to pause the background music when you said that really brought my attention btw lol.
    Now onto Summary
    Functions are blocks of code that perform a specific task. We can remember a function by its input and output.
    To define a function, we have to declare whether it has a return value. If it doesnt, declare using 'void', and if it does, declare using the appropriate data type according to the result. We also have to declare the data type of inputs.
    There are a whole lot of benefits when it comes to using functions in an appropriate manner.
    1. IT lets the code DRY, and easy to read and understand
    2. It is easy to update and maintain if there are any problem that occurs.
    However, we shouldn't be overusing functions, since, above the appropriate level, our code could be messy and difficult to read. Deciding what is actually worth putting in functions would require us to have some decent experience with programming, but as a rough rule of thumb, just make a function whenever you find there are some lines of code that are being repeated over and over again.
    Going into the details of why is like this. If a function is being used not in-line(as Cherno stresses), it would result as in the compiler or CPU(what ever) jumping to the location of our binary code where the function is defined, to look for the definition, and jumping back to the place where function was executed. Calling a function also results in creating a whole stack framework with parameters and return address. This is also a waste of memory and time.(if I understood correctly.)

  • @meh1672
    @meh1672 Před 7 lety +7

    This is the best programming series ever! :D

  • @rayecast
    @rayecast Před 4 lety +1

    That bit about making mistakes from copy and pasting: my professor, when he was teaching us C, kept telling us that "code duplication is EVIL." He kept saying that, and it's the one thing that really stuck because he kept saying it lol

  • @caffeinatedinsanity2324
    @caffeinatedinsanity2324 Před 10 měsíci +1

    In embedded systems, using functions will also actually make you use less memory. Which is crucial, since you need to manage resources more importantly than with computer science.

  • @MetalWhale.
    @MetalWhale. Před 2 lety

    I never even heard anything about unsigned variables once in my C++ 1 class. These videos are amazing.

  • @uatignai
    @uatignai Před 2 lety

    Lol dude, I think am only gonna watch your videos from now. Am a beginner in cpp, but you explain everything so well plus you are funny dude! you def get a follow

  • @w3w3w3
    @w3w3w3 Před 4 lety +5

    Great series Cherno! really lovely.

  • @Special4ce293
    @Special4ce293 Před 2 lety

    several years ago when I picked up programming due to school, not a focal point for my apprenticeship at the time... I never fully understood functions.
    With this video, I think i grasped the concept a lot better.
    TY :)

  • @elaine6820
    @elaine6820 Před 4 lety

    This is best C++ course I’ve found on CZcams.

  • @kentroland5182
    @kentroland5182 Před 3 lety +1

    my lecturer explained it nearly about 1 hour but still we cant understand....thank god i found this channel!!!Thank you!

  • @123arskas
    @123arskas Před 4 lety +1

    @Cherno i love your videos. At first when i started watching them without going for the beginning ones.....It looked tough to me. But now looking back at the beginning videos it all makes sense. YOU'RE AMAZING !!! 😍🥰

  • @timholden1371
    @timholden1371 Před 4 lety +2

    Thank you for these videos man. I can't explain with words alone how much these videos have helped me to refine my C++ skill set.

  • @HappyMatt12345
    @HappyMatt12345 Před rokem

    Any multi-line snippet you end up repeating in several places is probably better to write a function for imo.

  • @25fpslagger81
    @25fpslagger81 Před 2 lety

    After watching 10s of videos this small video actually gave me a clear idea about functions

  • @andreimadroane9579
    @andreimadroane9579 Před 4 lety +2

    At school our teacher makes us to make every code with a function, even simple ones like: Fibbonacci series and the the least common multiple

  • @RyanAvgeek
    @RyanAvgeek Před 7 lety

    The production quality on these videos has really gone through the roof

  • @theturtleclubcanzadywhite3527

    omg thank you I just been having trouble lately understanding Functions

  • @MichaelSilva-oi2sy
    @MichaelSilva-oi2sy Před 5 lety +2

    U're amazing and your videos are getting even better. Congrats.

  • @belHlopez
    @belHlopez Před 10 měsíci

    I just want to say thank you for all that you have already done for us and keep doing. The Chearno, for me you are the best tutor ever. And again, thank you!

  • @zhuyida4917
    @zhuyida4917 Před 2 lety

    It is the best C++ tutorial in all tutorials i have learned! Love you, the Cherno!

  • @deepeshanna
    @deepeshanna Před 6 lety

    I really hope that this C++ series gets as many audiences as possible !! The best C++ series available on CZcams :)

  • @seenup9597
    @seenup9597 Před 4 lety +1

    This series is awesome, i am looking for this type of series.Thank you so much Cherno.
    Can you please make videos on Concurrency in C++ and also on Design Patterns

  • @swoopertr
    @swoopertr Před 6 lety

    this is the best c++ tutorial serie ever! This explains every bit of c++.

  • @minhquando100
    @minhquando100 Před 5 lety

    I usually go by a self-made rule I call the rule of 3. If I have to write a chunk of code that's more than 3 lines long and I have to write the same chunk of code more than 3 times in my codebase, then I'm making a function.

  • @yickysan
    @yickysan Před 9 měsíci

    Glad to have found this channel and commence my c++ journey.

  • @joymakerRC
    @joymakerRC Před rokem

    bong hits between vids bro, imma be a genius by the end .

  • @redwheeliq
    @redwheeliq Před 7 lety +53

    I won't be surprised if your videos show in college to teach students c++ (sorry for my bad English tho )

    • @themodernshoe2466
      @themodernshoe2466 Před 7 lety +13

      The stuff on the compiler/linker is pretty good for interview studying imo

    • @SimplyWilbert
      @SimplyWilbert Před 6 lety +11

      My computer science teacher is assigning us to watch this video and come up with two questions about C++ Functions

    • @thederickff
      @thederickff Před 6 lety +4

      No prob ^, (sorry for my bad English)

    • @HermanWillems
      @HermanWillems Před 6 lety

      It's missing alot information about functions. For example passing by reference or value. Passing in functions... and much more. It's just scratching the VERY VERY basics of functions. But good for beginners. But don't expect to understand everything about functions after this video lol.

    • @Goldfish1060
      @Goldfish1060 Před 5 lety +2

      Herman Willems No shit, this is obviously a beginner video.

  • @XxNGameCubexX
    @XxNGameCubexX Před 5 lety

    Something that almost tripped me off was whether it was necessary to declare a function when compiling a single .cpp file.. after all I had learned in the past that this is the case. Turns out it IS necessary, but the function definition acts as its own declaration as long as it is placed before the entry point (main), which he always does in this video. This had confused me in the video about Header files that comes after. You also don't always have to include the file that contains the definition because of how the linker works.
    I love these videos. I learned C++ from Mike Dawson's Beginning C++ through Game programming (great book btw, check it out if you're totally new!), but I am watching this to fill some gaps :) Thanks Cherno!

  • @originaltenka5545
    @originaltenka5545 Před 5 lety +2

    He's really come a long way...I started here
    congratulations on your wedding

  • @dipanshgarg9981
    @dipanshgarg9981 Před 2 lety +2

    Thanks for existing Cherno....

  • @ommahajan1
    @ommahajan1 Před 4 lety

    I like that you have increased the font size so that we can watch on low res or small screens.

  • @akshhay
    @akshhay Před 3 lety +1

    4yr of college & my teacher could never explain things this easy

  • @13011tech
    @13011tech Před 2 lety +1

    I created a function with a pointer because of this video! This is really good stuff for learning foundational things, especially when self taught. Thank you! +1

  • @Nimitz_oceo
    @Nimitz_oceo Před 7 lety +3

    Mr Cherno, first of all I will like to thank you for all the wonderful things you have done for me personally in terms of teaching. Your videos have been beyond what i call helpful, I will like to ask you for some specifications regarding the hardware. For some of the previous series you have done. Series like sparky and building the java game engine. What kind of hardware will you recommend in order to achieve maximum performance while building the game engine

  • @d3vr3c4
    @d3vr3c4 Před 6 lety

    I just watch that video stoned, man u are so fucking good teaching. And you have a high level of programming skills.
    I've never had a idol of programming world, but now i have you as my idol!

  • @craigboger
    @craigboger Před 3 lety

    Thanks for the series! Great refresher since I haven't had to write C++ in a couple years.

  • @escanorplays600
    @escanorplays600 Před 3 lety

    This guy explains like 5 head strat's but my brain cant keep up or understand. i just hope one day i can wrap my brain around it

  • @anjuro
    @anjuro Před 7 lety +1

    Nice intro to functions! although perhaps a bit too basic. I'm looking forward to more advanced topics like the rule of three, modularizing code with unions and templates etc although I suppose those topics have more to do with classes .

  • @matheusvieirao
    @matheusvieirao Před 6 lety

    you make your videos in such a didactic and incredible way that the only thing that makes my learning difficult is the way that your beauty distracts me (and it distracts a lot rs)
    Thanks for the content!

  • @ahujadivyam
    @ahujadivyam Před 7 lety +3

    Thanks Cherno

  • @Xx_McJasper_xX
    @Xx_McJasper_xX Před 3 lety

    Love it dude. Can't wait to finish the C++ series so I can dive into the Game Engine playlist.

  • @viktor_borodin
    @viktor_borodin Před 3 lety

    I want to specify that functions has other various features. They also make interface, self-descripted code, possibility of modular code.

  • @sebve9399
    @sebve9399 Před 5 lety +1

    your videos are amazing. so many details and answers to common questions!

  • @seymencicek8627
    @seymencicek8627 Před 2 lety

    Thanks for this C++ tutorial!

  • @renarsdilevka6573
    @renarsdilevka6573 Před 4 lety

    Would expand on this topic with my experience in Web development, nevertheless, it is writing code daily :). The another important thing apart from readable code and not making spaghetti, therefore applying the solution to split your code into nice functions, is able to write tests for the code. So code which is split into nice little short functions is easier to write tests for, if any needed in given context. It is all about delegation and then writing isolated tests to test your application.

  • @utkarshin
    @utkarshin Před rokem

    Hey sir your series is amazing your teaching is looks like you have very heavy duty expereince.

  • @shieng48
    @shieng48 Před 2 lety

    Love these series

  • @dorothyglade9087
    @dorothyglade9087 Před 5 lety +1

    Thanks for this! Super helpful with school!

  • @jgurtz
    @jgurtz Před 4 lety

    Raising my devops hand here just say: please return useful and sane values from your main (and document them!)! Testing the return value of programs is the fundamental error checking method from within shell scripting or even exec within other programs. By all means create an error handling function or class to organise this.

  • @tahasedjal9380
    @tahasedjal9380 Před 3 lety

    This series is magnificent.

  • @muqasdasyousaf9296
    @muqasdasyousaf9296 Před 5 lety

    Your way of teaching is too much good..... i really like and enjoy it.....

  • @ioanamarin3242
    @ioanamarin3242 Před 7 lety +1

    This was so helpful! Thank you for your effort

  • @manhvv
    @manhvv Před 6 lety +1

    Hi Cherno, I would like to say thank you. You have excellent training skill, and thank god, you give this course free :). Hope you fine.

  • @ruicsf
    @ruicsf Před 3 lety

    Love the videos, thank you. One suggestion; Could you zoom out a bit in the future when writing the code, would help when following along.

  • @floridaplumber6106
    @floridaplumber6106 Před rokem

    your videos are perfect at 75 speed, you are wise and fast !

  • @andrejilic8106
    @andrejilic8106 Před 6 lety

    You are a god, I really appreciate all of those tutorials and I love your videos! Keep up the good work and if you can make a series on dll coding, i mean like conecting to the pipe and more stuff

  • @JoshTheAE
    @JoshTheAE Před 7 lety

    Thank you!! Wasn't expecting a video in the middle of the week..

  • @mracipayam
    @mracipayam Před 11 měsíci

    6 years later from this video i followed you on instagram :D

  • @justchill99902
    @justchill99902 Před 2 lety

    Me: "Has the Cherno gone crazy?"
    The Cherno: "Maybe but that's not the point"
    AHhahahahaah

  • @WayneRiesterer
    @WayneRiesterer Před 5 lety

    Your series is 99.99% perfect. I reserve 0.01% for the opening curly brace on a new line and using an uppercase character for the first letter of a function name. Ahhhh...C#, what have you done to style...? :D

  • @David-And-A-Half
    @David-And-A-Half Před rokem

    Forgetting to change a variable name after copying costs me half an hour EVERY. SINGLE. TIME.

  • @livesimplyandhumbly
    @livesimplyandhumbly Před 4 lety

    I am sure he knows.
    But for others.
    The compiler will see that all those multiplications result in constants and simply convert them to constants.
    Yeah, it's that smart.

  • @4n0nym0u5
    @4n0nym0u5 Před rokem

    I think you should never copy and paste code. It's always better to type it out, test it and then move on knowing it works as you intended.
    This eliminates situations where you get all kind of errors down the line, and not remember or think of something you changed maybe 4 hours, 2 days or 1 week ago!

  • @mrspookypoo727
    @mrspookypoo727 Před 2 lety

    the part about copying and pasting is funny to watch after seeing your vulkan video about memory used by CPU only

  • @Plasticcaz
    @Plasticcaz Před 7 lety

    An episode half-way through the week? I'm pausing Masterchef for this!

  • @yunusmile
    @yunusmile Před 3 lety

    not sure if i am more jealous of your hair or your c++ skill

  • @ankurparihar
    @ankurparihar Před 4 lety

    Loved the explaination! Can you please make another video about inline functions and how they impact on performance?

  • @kishanrajKRJ
    @kishanrajKRJ Před 5 lety

    its the best video series,ever!

  • @sallaklamhayyen9876
    @sallaklamhayyen9876 Před rokem

    brilliant explanation thank you so much

  • @jamesfox8930
    @jamesfox8930 Před 5 lety

    these videos are a beast bro jackson

  • @zbyna2567
    @zbyna2567 Před 2 lety

    if it were that simple. This is because a function can take over not only basic data types but also complex ones as well as methods and other functions, either by value or by reference, there is simply much more to it.
    But I forgot to mention that a function can have another function as a return value

  • @exnaruto1
    @exnaruto1 Před 7 lety

    Thanks for an awesome second video of the week!!!

  • @Nimitz_oceo
    @Nimitz_oceo Před 7 lety +3

    Same question. Am I dreaming ? I haven't done my homework. But thank you very much

  • @kriswitek8883
    @kriswitek8883 Před 7 lety

    Really appreciate the videos, Cherno. Looking forward to each one.

  • @Murderface666
    @Murderface666 Před 7 lety

    I think all computer science classes should have music playing in the background instead of stale silence with the sound of keys clacking like its an internet sweatshop

    • @rynho7255
      @rynho7255 Před 7 lety

      If you hear carefully, there are both in this video and honestly, it's kinda enjoying to hear keys clacking :)

  • @AdamS-lo9mr
    @AdamS-lo9mr Před 7 měsíci

    In a lot of my programs I tend to create single use functions for things that the program does to set up an environment for the main task of the program. For example the thing im working on right now needs to take a few text files as input. I feel like this makes my code much easier to understand since I can keep only the important bits in the main function. Do you think this is a nad practice? How about single use functions for other large tasks? Imo that could also make things easier to understand.

  • @zhh174
    @zhh174 Před 4 lety

    thank you, sir. you explain everything greatly

  • @jayakrishnasmenon5890
    @jayakrishnasmenon5890 Před 4 lety

    Thanks cherno

  • @flopaz6950
    @flopaz6950 Před 7 lety

    Niceeeeee to see a new video in the week!!

  • @ChrisCDXX
    @ChrisCDXX Před 6 lety

    Damn dude... You have a talent for helping people understand... SUBBED!

  • @alisonrae
    @alisonrae Před 4 lety

    Thank you so much! Your videos are amazing!