I totally agree with you Novare, most of other c++ tutorials seems using the old way styles, but this dude is representing what most industries used, keep up the good work cherno!
I agree to some extent. Lot of work has been put in that is clear. Very nicely produced. Some episodes, and this episode specifically does seem to be a little misleading in some areas. A little. For example he did mention it in passing, but a newbie could easily miss the fact that there is no difference between .h and .cpp files, you can include .cpp files inside other cpp files just fine. The naming is purely convention. Also, .cpp files need not necessarily be one for each translation unit, this too is merely a common build convention. There are other ways to build your program. Unity builds (not to be confused with the unity game engine) is another, albeit, less well know convention, where the entire program source is put into one translation unit. In a lot of cases this can speed up compile times quite a bit, because the compiler does not need to load and recompile the same files multiple times. There are also down sides however. It is a different workflow than most are use to, and usually the compiler requires a larger chunk of ram to work on everything at once, although these days, this is mostly less of an issue because dev machines often can easily fit the entire source code into ram. If it is an issue you can always split the build into 2 or more translation units and live with the speed hit.
no lie, i went around recommending these videos to all my uni professors to use for future cpp classes. i have been through a boatload of cpp videos and no one makes them as clear and cool as Cherno. Top notch man, really top notch.
I think you hear what you simply want to hear my friend. Played it back multiple times but i can CLEARLY hear him say "header files". He is talking fast though, but he never tripped saying pedophile. Its header files all the way !
Same, a whole year of school didn't even teach me functions or project files or complers or literally anything, and then I see this series and there is so much stuff I didn't know already in the first few episodes
love how this series isnt just straight coding like all the others you spend time away from the screen explaining all the concepts and features of the language you learn so much more i love it the way you explain complex problems is excellent your very talented at what your doing nice one keep it up mate
Seriously though, love the outdoorsy-ness in this video. It really amps up the "real person saying something interesting" perception mechanism in our heads. Kind of like going on a field trip and learning more because it's memorable or something.
The video even starts with the viewer being locked in the boot/trunk. I bet the glove-box is full of lollipops. **raises both eyebrow as he nods slowly**
I usually increase the speed of tutorials by 1.25x or 1.5x since most of them talk very slow, for the first time, I had to reduce it. Excellent job. The speed of explanation is what I wanted. Lovely!
All of the time I thought that learning CPP should be hard and suffering. but after starting this series, I realized how funny CPP is and I enjoy every time I learn a new thing from this playlist. thank you so much
I was reading about how to write your own header files. And I got bored. Searched it on UA-cam. Found your video. And now i am gonna watch your whole C++ series. This is the coolest tutorial video i have ever seen. Thanks. 🔥🔥
What I love about this guy is he does all of these tutorials for free but other people make you spend like $10 just to get what would have got if you watched like the first 10 episodes of this series.
I really like the idea of switching up your environment :D awesome editing, footage, background music (except the thunder sounds, but there's not much you can do about it :p)! I already know the c++ basics, but there's always something that I didn't knew. And I'm still a amateur over all, so I'm excited for the next few more complex parts of the language come into play!
what the... am missing !!! what's that cherno !! insane !! these are just the few first videos and its absolutely much better than some university courses, Thanks a lot man, Really appreciate it.
After watching this, my conclusion as a beginner is that either the community is just very ignorant about what header files are and unjustifiably finds them difficult, or that these video is so well made that it makes the matter seem way simpler than it really is and I might found out later on to my own despair.
I love your style. Combining such technical tutorials with a wild environment and the nature rather than in front of a bunch of computer screens really make the videos interesting to watch and fun to learn from.
Absolutely love this series!! Needed something like this to reignite my interest in C++. Started off with C++, but then went off with languages like Python, JS
Took an entire year of into and advanced c++ in uni and not once did I ask what #pragma once was for. I was so confused when trying to create projects on my own. Now I get it! Thanks for clearing it up!!
After unsuccessfully breaking a single massive library into a "Brilliantly" ordered collection of smaller more manageable files, and creating a compiler list of errors that was persistently longer than 2,000 items, no matter how many times I recursively included each header in the other headers.... Point is, thanks for helping me to 'notice' what my issue was (two months after first watching this vid).
Game development? C++? I think I just found a gold mine. EDIT: I genuinely love how well explained everything is, even an absolute amateur like me understood everything, thank you, I mean it.
@@ahmadayazamin3313 It's been a whole year (maybe more), I already made my first game and I'm now working on the second. (Also I know you're referencing that obnoxious ad.)
@@THExRISER Hey there! I know this comment is very old, but was just scrolling down and after seeing it, I would like to ask: is it very hard to create your own games? This is the field I'm very interested in. Been learning C++ in school for around 2 years now, know the basics, but there are much more things explained in this video than my teacher ever explained and now looking to learn extra more at home:D Thanks for the answer in advance!
@@voopie813 Hi there! Ah well, this is a very loaded question... Let me start by saying that up until this point, I've been using game development as a vehicle for learning C++, so I avoided using a game engine, since engines do most of the work for you, but as a result you wont actually learn programming on a fundamental level. So, there are two questions you should be asking to find out if game development is gonna be hard for you or not: 1-Why do you want to make games? Is it because you actually want to make games? Or because you want to improve your programming skills? If it's the former, use an engine, I don't have a lot of experience with them but I used Unity during an internship and it's very easy to use, and there's a lot of support for it so you'll probably rarely get stuck, Unity and Unreal use C# and C++ for scripting respectively, so since you know C++ you should have an easy time with them. (There's also Godot which is a tiny engine you might like depending on your needs) But if it's the former, you might want to avoid using an engine, it'll be much harder since you'll have to work with graphic libraries/frameworks and write your own tools and stuff, but you'll learn a lot if your goal was learning. (Cherno actually made a video on this exact topic, might wanna watch that to get more insight) 2-How high are you aiming? Engine or not, the difficulty of game development depends on scope of the game you wanna make, cuz don't forget, gamedev is not just programming, there's art, music, level design and so much more...so unless you're like me and you're making a game that has none of that, you might wanna bring a friend or two to help with art and stuff while you focus on programming, or learn those things yourself if you're passionate about them. So to recap: My goal up until now was C++, so I didn't use an engine, used a graphics framework library, and only made simple games like 2D platformers, top-down shooters and shmups due to my lack of experience, and since I only focused on programming, my games were lacking in terms of visual and other aspects. The difficulty of game development will depend on whether or not you use an engine, as well as how ambitious your games will be, there's a difference between making a simple 2D platfomer or an open-world RPG with 30 different enemy types, especially if you're a solo-dev. Sorry for the wall of text, I hope that answers your question, I'm curious to hear what your plans are, as well as willing to answer any other questions to the best of my ability.
@@THExRISER Hello there Wow. First of all - thank you for your long and honest reply. Really didn't expect anything like this:D To start with, right now why I would like to create games is as you said - to improve my programming skills. Gaming is really a part of my life and because of that I would like to learn extra more and to be able to create something in the future by myself. Moving on, the aspects of gamedev you mentioned are well known to me, but for the beginning I would just like to create something functioning with the knowledge I would hopefully get. Finally, one question that bothers me: is there really a looot of hard maths when, for example, trying to create something while avoiding game engines? Thank you in advance!
@@voopie813 Oh, so you're following the same path as me, neat. I am still interested in game development itself so I'm planning on working with an engine in the near future, just thought I'd mention that, I don't want to completely turn you off of engines, they're very handy tools that makes things quicker and easier. As for math, interestingly enough, whether you're using an engine or not, the math is gonna be the same two things, it's pretty much just Vectors (for moving stuff) and Trigonometry (for rotating stuff), there's more complex math needed for more complex aspects of gamedev (like graphics or physics, but you can get libraries for those and focus on other things, that's what I'd do), I personally haven't needed anything aside from vectors and trigonometry yet so yeah... (PS: Unity uses some 4-dimensional black-magic called quaternions to rotate objects but you can do that with Euler angles until you understand it so you're good, I know that's what I'm gonna do...) Don't let math intimidate you, I did struggle with it growing up (and I still do outside of gamedev) but learning math becomes so much more fun when you have an actual reason to learn and use it. If I were to recommend a starting point (on UA-cam) it would be: -"Essential Mathematics For Aspiring Game Developers" video by javidx9. -"Math For Game Devs" playlist by Freya Holmér (As well as a couple of cool talks she did if you're interested). You can just learn things gradually everytime you need them in a project, worked for me, I'm not even halfway through the first video of that playlist tbh. So to recap: -Is there math involved in gamedev? Yes. -Is it hard? No, especially not with fun, practical application involved. -Does the math differ if there's an engine or not? No.
Header Files is soo important cause it serve as storage of some valuable snippets associated upon building highly complex programs of C++. It's really important maintening it so the main file will shorten its line of codes and would make it to feel at ease from finding bugs on it.
About header guards and pragma once: Please, if the project you are working on already uses one of the 2 types, please just makes sure to stay consistent.
Protip: quit being a bitch n ditch that weed at the very least. You can function on small dose opis to avoid withdrawal, but there's just no way you're gonna get anywhere & exceed at your true potential under the influence of psychoactive substances like THC. Studying after smoking is a fools errand and idgaf what rationalizations you come up with to justify the addiction, I've already heard them all.
11:25 With #pragma once you will get in trouble if you declared the same class/function/etc. in different headers. #pragma once generates a unique identifier for each header, so the preprocessor will not realise (by including all headers with the same class declaration) that you already included the class declaration. sry for my bad english :/
So to put it simply/make sure I understand: Header files exist to quickly paste a bunch of function declarations with a single line so they aren't cluttering your code while you work basically.
I had IT school for 4 years. 4 years and our amazing professor never explained header files. Or anything more than cout , cin. Thank you for taking the time and effort to teach the people that want to learn.
You weren't really missing out. Header files are damn near useless today since computers have exponentially more memory and processing power than they did back then.
"And the parameter is a const char pointer... And some child is chasing the kangaroos, that's funny. So this is the function's signature..." I couldn't stop laughing about this lol
Is there a reason to *not* put all your functions under one header file (say, functions.h), and then just include the functions header file in all your .cpp files? Then, you wouldn't have to look in all your .cpp files for just one function, and also you wouldn't have to put down any declarations. It feels like that shouldn't work...
Theoretically, you could put absolutely everything in one file. People don't tend to do that to make it easier to find things. There's a good reason not to though... Each cpp file is it's own compilation unit. If there are no changes to an already compiled cpp file, the compiler will skip that file when you press the "compile" button. If you add a function in a header file that is included in every compilation unit, it will force a recompilation of every compilation unit, even if that function is only used in one of them. In big projects, that is an unacceptable cost, as builds can be reeeeaaaallly long. This is probably the main reason why people don't put all definitions in one big header file. Hope that helped. EDIT: (Cut out a lot of rambling on mostly irrelevant stuff.)
Apart from keeping your code more organised by splitting it up into multiple files, putting everything into a single header file means that each translation unit (.cpp file usually) is going to have to parse and compile that same code every time even a little bit of your header file changes.
It might be helpful to point out that the compiler needs to know how much stack space to reserve for passed parameters and how to divide this space into the parameters correctly so that the body of the function can point to the correct memory when using the parameters. Similarly, the compiler needs to know how much memory needs to be returned by the function. Thus the function prototype also allows the calling code to pack the parameters onto the stack and to use the returned value. The only piece missing is the address of the function's code and that will be supplied by the linker when it arranges the code in memory.
I was watching this with subtitle on and for some reason when he said "what are header files traditionally" it showed "what are pedophiles traditionally" 4:31 Credits to all the people that discovered it first.
Fantastic video Cherno, these are really good. I'm glad the music isn't too loud anymore. Really clear and well explained! You're doing great just keep it up now! :D
I love the out and about style! and despite the wind the quality is still top notch! Even as someone who has been programming in c++ for years I'm loving this series!
Actually, iostream has no extension for a different reason. They wanted to go with .hpp to differentiate C++ header files, however some people insisted on .hxx so they finally settled on getting rid of the extension altogether to stop the discussion and get back to work. They also agreed to make old C headers reflect the change, and rename them from .h to no extension with a c- prefix (stdio.h -> cstdio)
Do you use .hpp instead of .h in C++ programing? In my iDE when I create a cpp file it also creates a hpp file automaticaly, but I don't know if i shoud do like The Cherno is doing(using .h files), or trust the iDE and use .hpp. Until this video both methods are working, but I'm concerned about when I receive big projects: What should I use?
@@brenomedeirosdeoliveira4090 I usually work with .h, more due to being used to it than anything else. Current compilers default to C++, treating the code as C usually requires special syntax or compiler options/switches. Shouldn't change anything either way, really.
Start of the video: "I already know this stuff, but let's see anyway." End of the video: "I didn't knew anything about this stuff, but now I hopefully do."
It's insane how well produced and executed this series is, love it! Cherno is on an entirely new level now. Keep up the good work!
Yeah, totally... Kind of blows my mind. :D
Novare I 100% agree. I know a bit about C++ but this is helping fill the gaps.
100% agree
I totally agree with you Novare, most of other c++ tutorials seems using the old way styles, but this dude is representing what most industries used, keep up the good work cherno!
I agree to some extent. Lot of work has been put in that is clear. Very nicely produced. Some episodes, and this episode specifically does seem to be a little misleading in some areas. A little. For example he did mention it in passing, but a newbie could easily miss the fact that there is no difference between .h and .cpp files, you can include .cpp files inside other cpp files just fine. The naming is purely convention. Also, .cpp files need not necessarily be one for each translation unit, this too is merely a common build convention. There are other ways to build your program. Unity builds (not to be confused with the unity game engine) is another, albeit, less well know convention, where the entire program source is put into one translation unit. In a lot of cases this can speed up compile times quite a bit, because the compiler does not need to load and recompile the same files multiple times. There are also down sides however. It is a different workflow than most are use to, and usually the compiler requires a larger chunk of ram to work on everything at once, although these days, this is mostly less of an issue because dev machines often can easily fit the entire source code into ram. If it is an issue you can always split the build into 2 or more translation units and live with the speed hit.
"there's a child chasing the kangaroos" the most Australian thing I've ever heard
161 likes and 1 reply
And he doesn’t take .1 seconds to film it :(
@@beezow7113 Well, the video is about headers, he's supposed to just declare that it exists, not to define it...
Nguyên Chương dammit
@@nguyenchuong7268 Well done.
4:29 I heard "what are pedophiles traditionally"
i thought i was the only one
I better turn the sound down, the neighbours are going to get the wrong idea.
Can't unheard it now
That's because you spell and pronounce pædophiles incorrectly.
captions say it too
When you're watching a C++ series and it suddenly turns into a vlog.
lmao
😂😂😂😂
MY GOD, I have found the C++ goldmine!!!
This channel is the goldmine of c++.
9
For real man!
Shiiit if you're gonna say there's a child chasing kangaroos, you gotta show us the god damn kangaroos. Great video as always!
I like to tease ;)
3:23
Someone replied to a comment like this one saying "this is a video about headers, he's just supposed to declare that it exists"
@@ItsNat21_ goddamn that's nice
my parents said my uncle went to jail for being a headerfile
🤣headophile
Every time he said header files, I couldn't help hearing that other word. lmao
no lie, i went around recommending these videos to all my uni professors to use for future cpp classes. i have been through a boatload of cpp videos and no one makes them as clear and cool as Cherno. Top notch man, really top notch.
Full sail university uses these now
I keep hearing "pedophiles" instead of "header files"...😅
‘what are pedophiles traditionally?’
@@xtdycxtfuv9353 yess
@4:28 I swear he said pedophile.
Oh shi... So tell me now how to stop hearing "pedophiles"?!
I think you hear what you simply want to hear my friend.
Played it back multiple times but i can CLEARLY hear him say "header files".
He is talking fast though, but he never tripped saying pedophile. Its header files all the way !
You explain things a lot better than my professor in a Programming Languages class I just took. This is a great series so far.
I'd like to see you after class....
Same, a whole year of school didn't even teach me functions or project files or complers or literally anything, and then I see this series and there is so much stuff I didn't know already in the first few episodes
I know you're really saying "header files", but in my head all I hear is "pedophiles"
love how this series isnt just straight coding like all the others you spend time away from the screen explaining all the concepts and features of the language you learn so much more i love it the way you explain complex problems is excellent your very talented at what your doing nice one keep it up mate
Episode 6: Yan takes us to the park to give us the important talk about pedophiles.
Seriously though, love the outdoorsy-ness in this video. It really amps up the "real person saying something interesting" perception mechanism in our heads. Kind of like going on a field trip and learning more because it's memorable or something.
hahahahah
He keeps saying "header files" way too quickly... at a park.
The video even starts with the viewer being locked in the boot/trunk. I bet the glove-box is full of lollipops. **raises both eyebrow as he nods slowly**
Where there are children playing
I usually increase the speed of tutorials by 1.25x or 1.5x since most of them talk very slow, for the first time, I had to reduce it. Excellent job. The speed of explanation is what I wanted. Lovely!
when I play it at 1.5x it sounds like he says pedophiles instead of headerfiles
@@vectoralphaSec to me it sound like header gods instead of header guides
@@DestroyerPal
I thought he said header gaurds
4:30 "what are paedophiles"
I turned on auto captions to check if that's what it picked up and it did lmao.
So I'm confused, does the kid go in the header-file and the kangaroo in the .cpp -file or vice versa?
it's up to you
All of the time I thought that learning CPP should be hard and suffering. but after starting this series, I realized how funny CPP is and I enjoy every time I learn a new thing from this playlist. thank you so much
I was reading about how to write your own header files. And I got bored. Searched it on UA-cam. Found your video. And now i am gonna watch your whole C++ series. This is the coolest tutorial video i have ever seen. Thanks. 🔥🔥
"there's a child chasing the kangaroos"
that child was never seen ever again
"Some child is chasing the kangaroos" is a sentence you can only hear from a an Australian.
That's so well edited. You do a huge amount of work, thank you ! (btw being outside gives a nice atmosphere :) )
This is one of the best tutorials I have watched in a while. Clear, fast-paced, and well edited. The music and scenery is icing on the cake!
3:20 "and some child is chasing a kangaroo" something that happens only in australia XD
What I love about this guy is he does all of these tutorials for free but other people make you spend like $10 just to get what would have got if you watched like the first 10 episodes of this series.
I really like the idea of switching up your environment :D awesome editing, footage, background music (except the thunder sounds, but there's not much you can do about it :p)!
I already know the c++ basics, but there's always something that I didn't knew. And I'm still a amateur over all, so I'm excited for the next few more complex parts of the language come into play!
hands down the best C++ tutorial
"This is C++. You can do anything with anything."
Can you?
Because it said you cannot declare a function twice
@@xrafter i use arch btw
I love that the video that breaks the format is just 'we're outside now. Why? Because I wanted to be. Anyway, header files...'
what the... am missing !!! what's that cherno !! insane !! these are just the few first videos and its absolutely much better than some university courses, Thanks a lot man, Really appreciate it.
After watching this, my conclusion as a beginner is that either the community is just very ignorant about what header files are and unjustifiably finds them difficult, or that these video is so well made that it makes the matter seem way simpler than it really is and I might found out later on to my own despair.
Cherno you do nothing but good things with this channel.
I love your style. Combining such technical tutorials with a wild environment and the nature rather than in front of a bunch of computer screens really make the videos interesting to watch and fun to learn from.
You and CodeBeauty are the best combo for learning C++.
This content is incredible.
This c++ series is outer world
Absolutely love this series!! Needed something like this to reignite my interest in C++. Started off with C++, but then went off with languages like Python, JS
Took an entire year of into and advanced c++ in uni and not once did I ask what #pragma once was for. I was so confused when trying to create projects on my own. Now I get it! Thanks for clearing it up!!
love your videos! btw "There is some kid chasing the kangaroos " is the most australian sentence i've heard xD
I looked over 3 books, one course, and this is the first place I felt the intuition behind header files
After unsuccessfully breaking a single massive library into a "Brilliantly" ordered collection of smaller more manageable files, and creating a compiler list of errors that was persistently longer than 2,000 items, no matter how many times I recursively included each header in the other headers....
Point is, thanks for helping me to 'notice' what my issue was (two months after first watching this vid).
Game development?
C++?
I think I just found a gold mine.
EDIT: I genuinely love how well explained everything is, even an absolute amateur like me understood everything, thank you, I mean it.
@@ahmadayazamin3313 It's been a whole year (maybe more), I already made my first game and I'm now working on the second.
(Also I know you're referencing that obnoxious ad.)
@@THExRISER Hey there! I know this comment is very old, but was just scrolling down and after seeing it, I would like to ask: is it very hard to create your own games? This is the field I'm very interested in. Been learning C++ in school for around 2 years now, know the basics, but there are much more things explained in this video than my teacher ever explained and now looking to learn extra more at home:D
Thanks for the answer in advance!
@@voopie813 Hi there!
Ah well, this is a very loaded question...
Let me start by saying that up until this point, I've been using game development as a vehicle for learning C++, so I avoided using a game engine, since engines do most of the work for you, but as a result you wont actually learn programming on a fundamental level.
So, there are two questions you should be asking to find out if game development is gonna be hard for you or not:
1-Why do you want to make games? Is it because you actually want to make games? Or because you want to improve your programming skills?
If it's the former, use an engine, I don't have a lot of experience with them but I used Unity during an internship and it's very easy to use, and there's a lot of support for it so you'll probably rarely get stuck, Unity and Unreal use C# and C++ for scripting respectively, so since you know C++ you should have an easy time with them.
(There's also Godot which is a tiny engine you might like depending on your needs)
But if it's the former, you might want to avoid using an engine, it'll be much harder since you'll have to work with graphic libraries/frameworks and write your own tools and stuff, but you'll learn a lot if your goal was learning.
(Cherno actually made a video on this exact topic, might wanna watch that to get more insight)
2-How high are you aiming? Engine or not, the difficulty of game development depends on scope of the game you wanna make, cuz don't forget, gamedev is not just programming, there's art, music, level design and so much more...so unless you're like me and you're making a game that has none of that, you might wanna bring a friend or two to help with art and stuff while you focus on programming, or learn those things yourself if you're passionate about them.
So to recap: My goal up until now was C++, so I didn't use an engine, used a graphics framework library, and only made simple games like 2D platformers, top-down shooters and shmups due to my lack of experience, and since I only focused on programming, my games were lacking in terms of visual and other aspects.
The difficulty of game development will depend on whether or not you use an engine, as well as how ambitious your games will be, there's a difference between making a simple 2D platfomer or an open-world RPG with 30 different enemy types, especially if you're a solo-dev.
Sorry for the wall of text, I hope that answers your question, I'm curious to hear what your plans are, as well as willing to answer any other questions to the best of my ability.
@@THExRISER Hello there
Wow. First of all - thank you for your long and honest reply. Really didn't expect anything like this:D
To start with, right now why I would like to create games is as you said - to improve my programming skills. Gaming is really a part of my life and because of that I would like to learn extra more and to be able to create something in the future by myself.
Moving on, the aspects of gamedev you mentioned are well known to me, but for the beginning I would just like to create something functioning with the knowledge I would hopefully get.
Finally, one question that bothers me: is there really a looot of hard maths when, for example, trying to create something while avoiding game engines?
Thank you in advance!
@@voopie813 Oh, so you're following the same path as me, neat.
I am still interested in game development itself so I'm planning on working with an engine in the near future, just thought I'd mention that, I don't want to completely turn you off of engines, they're very handy tools that makes things quicker and easier.
As for math, interestingly enough, whether you're using an engine or not, the math is gonna be the same two things, it's pretty much just Vectors (for moving stuff) and Trigonometry (for rotating stuff), there's more complex math needed for more complex aspects of gamedev (like graphics or physics, but you can get libraries for those and focus on other things, that's what I'd do), I personally haven't needed anything aside from vectors and trigonometry yet so yeah...
(PS: Unity uses some 4-dimensional black-magic called quaternions to rotate objects but you can do that with Euler angles until you understand it so you're good, I know that's what I'm gonna do...)
Don't let math intimidate you, I did struggle with it growing up (and I still do outside of gamedev) but learning math becomes so much more fun when you have an actual reason to learn and use it.
If I were to recommend a starting point (on UA-cam) it would be:
-"Essential Mathematics For Aspiring Game Developers" video by javidx9.
-"Math For Game Devs" playlist by Freya Holmér (As well as a couple of cool talks she did if you're interested).
You can just learn things gradually everytime you need them in a project, worked for me, I'm not even halfway through the first video of that playlist tbh.
So to recap:
-Is there math involved in gamedev? Yes.
-Is it hard? No, especially not with fun, practical application involved.
-Does the math differ if there's an engine or not? No.
This series are definitely going to be classic. Thanks for creating them.
What ARE pedophiles traditionally?
Wonderful pun there.
Been following you since 2017 when I was just learning C++, now I'm back for some more.
These tutorials are on a whole other level... Absolutely fantastic!
My favorite line, "This is C++, You can do anything with anything."
Header Files is soo important cause it serve as storage of some valuable snippets associated upon building highly complex programs of C++. It's really important maintening it so the main file will shorten its line of codes and would make it to feel at ease from finding bugs on it.
About header guards and pragma once:
Please, if the project you are working on already uses one of the 2 types, please just makes sure to stay consistent.
I watched this video at 4:36AM, on pain killers and weed, and somehow you managed to explain it to me even while I was on another planet.
Protip: quit being a bitch n ditch that weed at the very least. You can function on small dose opis to avoid withdrawal, but there's just no way you're gonna get anywhere & exceed at your true potential under the influence of psychoactive substances like THC. Studying after smoking is a fools errand and idgaf what rationalizations you come up with to justify the addiction, I've already heard them all.
Didn't see one kangaroo in this video. Unsubscribing.
lul
John Doe I see to many kangaroos ever week
I'am reading an articles written by John Doe... Is that you?
@@sal96ali
Yes he is john do. Look at his name
This guy is fake australian, zero kangaroos out of ten.
this series is pure gold
11:25
With #pragma once you will get in trouble if you declared the same class/function/etc. in different headers. #pragma once generates a unique identifier for each header, so the preprocessor will not realise (by including all headers with the same class declaration) that you already included the class declaration. sry for my bad english :/
wut
So to put it simply/make sure I understand: Header files exist to quickly paste a bunch of function declarations with a single line so they aren't cluttering your code while you work basically.
Today he headed out of town xDDD
0:01 what i see before my step-dad takes me to his friends house
Fantastic work Chernostove!
The change of scenes really makes every subject individual and memorable.
awesome.
I love how you are finding ways to combine your passions
Best c++ tutorial series on youtube!!
This series is going to blow up in popularity.
I had IT school for 4 years. 4 years and our amazing professor never explained header files. Or anything more than cout , cin. Thank you for taking the time and effort to teach the people that want to learn.
You weren't really missing out. Header files are damn near useless today since computers have exponentially more memory and processing power than they did back then.
Turn on autogenerated captions at 4:25. xD I heard it myself first time aswell.
God such clear expalnation and not at all boring. Deserved a sub!!
Niceeeeeeeeeeeee ! a new cherno video !
"And the parameter is a const char pointer... And some child is chasing the kangaroos, that's funny. So this is the function's signature..." I couldn't stop laughing about this lol
Is there a reason to *not* put all your functions under one header file (say, functions.h), and then just include the functions header file in all your .cpp files? Then, you wouldn't have to look in all your .cpp files for just one function, and also you wouldn't have to put down any declarations. It feels like that shouldn't work...
Theoretically, you could put absolutely everything in one file. People don't tend to do that to make it easier to find things.
There's a good reason not to though...
Each cpp file is it's own compilation unit. If there are no changes to an already compiled cpp file, the compiler will skip that file when you press the "compile" button. If you add a function in a header file that is included in every compilation unit, it will force a recompilation of every compilation unit, even if that function is only used in one of them. In big projects, that is an unacceptable cost, as builds can be reeeeaaaallly long. This is probably the main reason why people don't put all definitions in one big header file.
Hope that helped.
EDIT: (Cut out a lot of rambling on mostly irrelevant stuff.)
Yeah, that does make sense actually. Thanks!
Apart from keeping your code more organised by splitting it up into multiple files, putting everything into a single header file means that each translation unit (.cpp file usually) is going to have to parse and compile that same code every time even a little bit of your header file changes.
I love that the cc thinks you are saying pedophiles and not header files at 4:27
Love you bro
Why you’re so good in explaining the concepts. THANKS 🙏
holy fuck cherno is really close to where i live help
Zix don't be that guy. Keep this information to your self. Not every one wants the Internet to know where they live.
i mean like, i didn't say where he was
0:00 POV: You are getting kidnapped to become a master c++ programmer and your teacher is *The Cherno*.
On god , this series is a gem. It is well paced and explanation are crystal clear.
Cherno, you're awesome. Thank you so much !
This series is encouraging me to quit College.
(Cherno : I am ready to watch ads for this series)
Loved the idea of outside filming, the best explanation out there!
Might want to lower the music since it and your voice seems to be fighting for attention in my ears.
please
Your way of teaching such a complex thing is so refreshing. Thanks!
It might be helpful to point out that the compiler needs to know how much stack space to reserve for passed parameters and how to divide this space into the parameters correctly so that the body of the function can point to the correct memory when using the parameters. Similarly, the compiler needs to know how much memory needs to be returned by the function. Thus the function prototype also allows the calling code to pack the parameters onto the stack and to use the returned value. The only piece missing is the address of the function's code and that will be supplied by the linker when it arranges the code in memory.
Hi Cherno, I usually don't comment in UA-cam educative videos but you nailed it bro need more educators like you 👌👌👌👌
This video is best as we were able to study in nature itself
Dude, thank you so much for this series. You are dragging me through my C++ course.
0:00 Hey, that's the exact thing my friend Bill told me before closing the trunk as well!
Is 5G signal able to reach the depths of hell? Amazing>>
the lighting is gorgeous.
I was watching this with subtitle on and for some reason when he said "what are header files traditionally" it showed "what are pedophiles traditionally" 4:31
Credits to all the people that discovered it first.
I loved this style of heading out. Nice warm feel!
Please NEVER stop this series!
When you get somewhere out of town and children chasing kangaroos is a normal sight, that's when you know you are in australia. (Great videos btw)
This is an awesome video on how c++ header files work.
That one's produced insanely good
Thanks a lot for the whole series!
Fantastic video Cherno, these are really good. I'm glad the music isn't too loud anymore. Really clear and well explained! You're doing great just keep it up now! :D
I love the out and about style! and despite the wind the quality is still top notch! Even as someone who has been programming in c++ for years I'm loving this series!
This is the first time I've had anyone or any book open the folders and actually demonstrate what Visual Studio is doing with these files.
one of best C++ channel. loved it.
Actually, iostream has no extension for a different reason. They wanted to go with .hpp to differentiate C++ header files, however some people insisted on .hxx so they finally settled on getting rid of the extension altogether to stop the discussion and get back to work. They also agreed to make old C headers reflect the change, and rename them from .h to no extension with a c- prefix (stdio.h -> cstdio)
Do you use .hpp instead of .h in C++ programing?
In my iDE when I create a cpp file it also creates a hpp file automaticaly, but I don't know if i shoud do like The Cherno is doing(using .h files), or trust the iDE and use .hpp.
Until this video both methods are working, but I'm concerned about when I receive big projects: What should I use?
@@brenomedeirosdeoliveira4090 I usually work with .h, more due to being used to it than anything else. Current compilers default to C++, treating the code as C usually requires special syntax or compiler options/switches. Shouldn't change anything either way, really.
Start of the video: "I already know this stuff, but let's see anyway." End of the video: "I didn't knew anything about this stuff, but now I hopefully do."
What it looks like to get kidnapped by The Cherno 0:00
Personal notes:
-pragma once and ifndef-define are used for same purpose: preventing header file to be included more than once
This was so helpful. Been 5 years, but the way you explained this makes it make so much sense, thank you
The background was beautiful!