I'm learning C++ now, and these videos showing the code being written while explaining the concepts are most valuable.
@appsenence9244 Жыл бұрын
Yes that is the definition of a tutorial and the reason we are all here. But thanks for stating the obvious.
@KE010101 Жыл бұрын
@@appsenence9244 🧡
@KE010101 Жыл бұрын
@@appsenence9244 your absolutely correct, thanks for pointing that out, 🧡
@appsenence9244 Жыл бұрын
@@KE010101 that'll be 5 bucks
@KE010101 Жыл бұрын
@@appsenence9244 🤣🤣
@mikeock31644 жыл бұрын
I'm a Computer Science major and with the whole online learning thing, its been a but hard to learn things. Thanks for these videos !! They really are a big help.
@darksquirrel74364 жыл бұрын
yeah i will have an exam in 5 days and i haven't attended a class in weeks if it weren't for these videos i would have to learn from the teacher's powerpoints which are crap
@Thadnill4 жыл бұрын
@@darksquirrel7436 I have exam tomorrow and crammmiing these videos as **** haha
@mryup61004 жыл бұрын
In my area we are already on break.
@darksquirrel74364 жыл бұрын
@@Thadnill Good luck i also have my programming exam tomorrow LOL Edit: I passed the exam and btw if you have to take a java exam don't think c++ is similar because it is not
@Thadnill4 жыл бұрын
@@darksquirrel7436 Lol it became an all - nighter for me, I haven't slept yet and my exam is in 2 hours, I might have to do it again after summer, haha well good luck to both of us!
@Daniel-zr4pkАй бұрын
Peak KZbin Content 7 years ago. You saved me during university in 2017. now you saving me again before interviews beucase i haven't used C++ for 4 years and i've forgotten most of it. big thank you big man!
@mr.budders87403 жыл бұрын
Your tutorials are great, you edit out when your not talking to reduce the tutorial time making learning faster. You also talk fast and don't stutter also reducing the time. Its quick and concise unlike some people that don't do any editing and just talk without much idea of were they are going from there.
@exnaruto17 жыл бұрын
"oh man, this hair today, it's just, just perfect" - xD. I love it. xD
@我有一个朋友-i2u4 жыл бұрын
could move on to be a fashion vlogger as well, hahaha
@piyushphodu4 жыл бұрын
even though i know 99% percent of these stuff, i still watch the whole video for cherno's wisdom nuggets
@EtBukaneluu4 жыл бұрын
could we just move printName to entity class ? and how its gonna look like ?
@mohamedfouzibenreguia83433 жыл бұрын
@@EtBukaneluu you can do that. but in the example we don't need name for entity class. but we need create new class "player" has name & printName function because player have a name. but entity class didn't need a name yes ,you can move printName to entity class but you are entering function you do not need
@liminal273 жыл бұрын
This is a great point - hearing even the simplest stuff that you already know from someone very smart like Cherno reinforces your understanding and can even reveal that you don't know it as deeply as you thought. 👍
@martiananomaly3 жыл бұрын
yessir
@JawwadHafeez7 ай бұрын
Had been programming since decades and love ur description. It gives a new way of thinking and understanding.
@rufusprime00154 жыл бұрын
you explain things so clearly and concisely, really helps with my c++ textbook and examples for class. The textbook is actually great but this video is more compressed and helped me get a clear understanding easily. I tend to use these videos as a supplement to what i'm learning in class and it helps so much. Thank you for taking the time to explain this.
@billiatosdaughter3 жыл бұрын
please share the textbook
@yuchen35875 жыл бұрын
I go back and watch these videos every time I forget something. And Cherno always gives me the answer
@josephh81172 жыл бұрын
Cherno has helped me massively in my CS education these last few years. Thank you so much, my Ozz brotha.
@mahdishirazi57853 жыл бұрын
this guy is amazing, taught me something in 8 minutes that my teacher failed to do in a whole semester
@serkanozturk42172 жыл бұрын
Personal notes: - Example: “Cat : Animal” now Cat class has not only type cat but also has type Animal. That is, it is actually both of those types -Polymorphism ~= being able to use the same fuction for different type of objects thanks to inheritance
@JacobKrajewski6 жыл бұрын
Love the way you explain these things. The way you explain things is exactly the way I like to learn. Very talented teacher. Thanks
@MRMIT-CS2 жыл бұрын
YOU HAVE EARNED ALL MY RESPECT , I AM LEARNING EXCITING THINGS FROM U SINCE 2019 WHEN I STARTED C++ FROM TIME TO TIME IF DONT UNDERSTAND SOMETHIN I COME TO THESE VIDEOS OF YOURS ,YOUR VIDEOS ARE APPRECIATED
@dxlge Жыл бұрын
Notes: Inheritance is one of the most fundamental and powerful part of classes. It allows us to have a hierarchy of classes which relate to each other, it allows us to have a base class which contains common functionality and then it allows us to branch off from that class and create sub-classes from that initial parent class. The reason why this is so useful is because it allows us to avoid code duplication. Instead of us repeating ourselves over and over again we can put all of our common functionality between classes into a parent class and then simply make sub-classes from that base class, which either change the functionality in subtle ways or introduce new functionality. The idea behind inheritance is that it gives us a way to put all of our common code into a base class so we don’t have to repeat ourselves.
@LightPenStudio4 жыл бұрын
That light coming through the window is somehow ethereal.
@ikemkrueger2 жыл бұрын
You‘re doing a very good job at explaining the things. Thank you for sharing that with us.
@WayneRiesterer6 жыл бұрын
class BjarneStroustrup { // stuff }; class TheCherno : public BjarneStroustrup { // extra stuff };
@Karlemilstorm4 жыл бұрын
I dont know about that xD I think Bjarne Stroustrup > The Cherno(*anyone else)
@smileynetsmileynet79224 жыл бұрын
I hope I'm thought of that way someday.
@mmaranta7853 жыл бұрын
That guys book on C++ is mind boggling
@mmaranta7853 жыл бұрын
Both hated combs
@kietdo43793 жыл бұрын
Fast, summarize and precise. Good job man. Love to know you
@j0n13 жыл бұрын
"Types in C++ are quite a complicated topic because on one hand they don't really exist, however on the other hand they kind of do." is just perfect.
@joeman1239644 жыл бұрын
biggest issue with my murach's textbook. it tries to teach inheritance with a MASSIVE project of code. having a base class with 4 subclasses and other forms of nested functions without showing the entire code. this video kept it simple to teach the basic principle of inheritance. well done.
@abod4gamer4 жыл бұрын
3:09 Schrodinger's cat
@maxim25o24 жыл бұрын
This is exactly what i learned, is avoiding of code duplication, but many peoples doing tutorials don't understand that and they do it opposite way. Misleading many peoples who want learn inheritance.
@matthewe38134 жыл бұрын
After watching this video, I finally understand inheritance. All of the other tutorials just made no sense to me.
@yuchen35876 жыл бұрын
Excellent. It is good to have this video and have a look at it every time I forget something.
@Jester88905 жыл бұрын
Just found your channel studying for my data structures exam, really great content! I'll be checking out the rest soon!
@tannerbarcelos68805 жыл бұрын
How’s data structures? I’m going into it this fall. Been killing my c++ class all semester till I got to copy constructors and now into inheritance and polymorphism
@Jester88905 жыл бұрын
@@tannerbarcelos6880 Best way to describe it for me is, it is difficult but very rewarding. It kind of adds several different tools to your tool belt and helps you approach problems with a different view; instead of just brute forcing the solution you think of what would be the best data structure to solve the task. I'm still not 100% comfortable with certain things and I'm towards the end of the semester, but, I think having a better understanding on a more shallow level of what is available I can use the information to dive deeper in during certain situations. Let me know if you have any questions this fall, happy to learn more with you.
@AhmetYusufYatkin4 жыл бұрын
Speedrun of learning. I loved it :D
@IsaacC20 Жыл бұрын
I've had this model for understanding inheritance for years. It's adequate until you learn about multi-ctor call and ctor initializer list, polymorphism vtables/vptrs, object slicing problem, and multi-inheritance and the diamond-inheritance problem. You then have to refine this basic understanding of inheritance to include the idea of "subobjects": if B inherits from A, it's not that B just has members from A, B actually "owns" a subobject of type A. In addition, to create a B object, the ctor of A must be called to initialize B's A subobject. Subobjects can be seen in visual studios while step debugging. When you inspect a B object, you'll see that it contains an A subobject!
@dilute69805 жыл бұрын
Perfect example. The example of having different entities inheriting from 1 main class for the generic entity stuff makes complete sense
@russellcannon91945 жыл бұрын
Hey Cherno, I have been enjoying this series on C++ and learning a lot from you, but as far as I can tell, you have not done a video on polymorphism like you suggested you might in this video. I would love to see that from you. Cheers, Russ
@haroldcarter83666 жыл бұрын
did this man just explain polymorphism in 23 seconds? (mind = blown)
@song50307 жыл бұрын
Hey Cherno! Love you're videos man, please keep it up! I am quite experienced with C++, been programming for almost 4 years now. I just have couple of question regarding these tutorials. Are these tutorials going to be made with c++14 or up standart in mind? I find it really hard to find quality modern C++ tutorials online.
@pimp25706 жыл бұрын
Thank you for explaining it that well, this looks super useful.
@RandomGuyyy7 жыл бұрын
That lens effect is like the default post processing setup in Unreal but with better bokehs.
@tannerbarcelos68805 жыл бұрын
My book and teacher are terrible. You have taught me what was making me second guess getting my cs degree lol. Stress has been slightly lessened! I still have an A in my c++ course but I’m starting to become a tad concerned on how all this operator overloading, inheritance and polymorphism is making me struggle..
@darimuhittin10 ай бұрын
If you say 'Exactly' in a whole 10 hours video again and again i can watch it
@darimuhittin10 ай бұрын
Im not gay.
@vegansynths77574 жыл бұрын
This was your clearest video yet.
@TimPatDuDe4 жыл бұрын
Thank you for making this.
@Indraneel-Ahluwalia6 жыл бұрын
Hi thanks for good videos . Please make a video on friend classes and functions.
@Ebiko2 жыл бұрын
Really good video. Can you explain why ` class Player : public Entity ` needs the public, whats the purpose of the "public " ?
@reycors68718 ай бұрын
thanks bro
@h.hristov7 жыл бұрын
Thanks! Love your videos man
@Scherbakov3 жыл бұрын
Super! But sometimes the subtitles disappear somewhere.
@primulaeinscode Жыл бұрын
Tell your teacher this: "This is how you teach."
@Omar.Alamoudi4 жыл бұрын
Question: So if we have two classes split between 4 files, two headers and two cpp files, we only need to use #include in the child class?
@AgentM1247 жыл бұрын
What happens if you change "public Entity" into "private Entity"? does private make all the Entity fields and methods only accessible to player?
@dekrain7 жыл бұрын
Agent M it will be only visible to Player class' methods
@AgentM1247 жыл бұрын
so if public banana() in Entity then it won't be visible to anything but Player if it is private Entity
@dekrain7 жыл бұрын
Agent M yes, you can also write protected instead of public, then it will be visible in Player class, friend classes/functions and subclasses, but no outside
@Lmao-ke9lq4 жыл бұрын
@@dekrain so inhariting with is going to be same as inheriting public, but with protected class member from inherited class?
@WaqarKhan-mw2de6 жыл бұрын
Really awesome, Thankyou so much dear
@ceachibogdan80875 жыл бұрын
Hey, can you make some tutorials for parallel programming in c++ ?
@OneShot_cest_mieux5 жыл бұрын
It would be awesome
@DigitalDivotGolf5 жыл бұрын
excellent job
@HermanWillems6 жыл бұрын
Is there also a video about Composition... i mean they say try to avoid Inheritance as much as possible. Use composition.
@ymahmoodi58174 жыл бұрын
Your videos are perfect. It would be great if you made video about multiple inheritance! Thank you.
@thorep5 жыл бұрын
is the __declspec and stuff like that explained in the c++ series?
@rarasdfa123124 жыл бұрын
you are the best
@mmoa19857 жыл бұрын
So why is inheriting different than including? for example: if in this video we included the Entity class inside the Player class.. will this be the same or there are differences?
@valizeth40736 жыл бұрын
You should have covered the protected keyword
@arnmazing31566 жыл бұрын
Vali Zeth protected just means anything that isn't a child of the parent class can't have access to that class member.
@valizeth40735 жыл бұрын
@@arnmazing3156 I know, I know. But in a video about inheritance and sort of visibility, the protected keyword should be explained, even though it's simple.
@nishithbaravkar75494 жыл бұрын
stop cribbing .. you could just ask the viewers to learn about it in a cinstructive way
@persistence24787 жыл бұрын
Hey man! Love your videos! I have a question. Before you write your programs do you plan them out on paper? If so, can you share how exactly you do this and when do you know that you're ready to start writing code? If anyone else can share their method, please do. Thanks!!!
@eloquentlyemma7 жыл бұрын
Persistence 24/7 I use DFDs (data flow diagrams - which designs the code around the data in the system - I think it's part of the JSD methodology if I remember correctly), process flow charts and pseudo code. I did learn UML for university - I didn't like it much, but it is the one to learn if you are looking for job skills.
@persistence24787 жыл бұрын
thanks so much! I'll look into those methods!
@theNeuo132 жыл бұрын
thanks for your videos, there are really helpful. which one of them is talking about overriding a function?
@christophilous48316 жыл бұрын
Why don't the functions PrintName and Move occupy any memory in the sizeof calculation? Wouldn't the object need to hold a pointer to them, at least?
@tcchan145 жыл бұрын
interesting concept. Subclass actually contain more from superclass.
@can37922 жыл бұрын
at the end of the video had me in laugh :D :D
@inwerp7 жыл бұрын
Use ctrl + f5 to build-run and keep the console open.
@tessanix9771 Жыл бұрын
I Always see the line "priorise composition over inheritance". Can you explain this concept in c++ ?
@zerotoinfinity31895 ай бұрын
i am new to c++ can any explain what is meant by this statement i could not find answer to this online in example give in video class Player : public Entity::something ::something can anyone explain this what is meant by above state have seen similar in a code base trying to understand
@mikeandjamiejarboe72113 жыл бұрын
How/Why do the variables X, Y get initialized to 0? player.X = 0; player.Y = 0; Yet, entity.X and entity.Y are uninitialized???
@taocry4 жыл бұрын
After this video, something is missing. How to reuse the constructor from super class?
@anatolistankevich25924 жыл бұрын
i've got the same question, dont know how to create an instance of my subclass, I've got a defined constructor in my superclass, but it doesnt work in subclass
@aamg95862 жыл бұрын
Why is the size of the player class 12? I understand that when the player class inherited the two floats x and y from the entity class so that's 8 but when adding char, isn't supposed to add only a 1 byte extra and the size becomes 9? Or is char* different from the one without the suffixed astrix "char"?
@awsumturtle Жыл бұрын
Because a const char* is a pointer, not a char. That variable stores a memory address that points to a location of where characters are stored or where a series of characters are stored. And just to add: a pointer is 4 bytes in a 32-bit application, dependent on the machine and compiler ofcourse!
@aamg9586 Жыл бұрын
@@awsumturtle Thanks Buddy! Now it's much clearer to me that a pointer is a 4 byte worth of memory in a 32bit application. So that must be it, right?
@awsumturtle Жыл бұрын
@@aamg9586 No problem. And yes, that's how it is but like I said it all depends on the machine and compiler. In this example though, it is 4 bytes.
@aamg9586 Жыл бұрын
@@awsumturtle much love xx
@aVeryAngryDuck4 жыл бұрын
Great video very helpful explanation 👍
@botobeni3 жыл бұрын
why char* occupies 4 bytes of memory, but can be a very lenghty string(more than 4 bytes)??
@walkmoon34792 жыл бұрын
char* is the pointer pointing the first char of a string. Once we know the where the first is, we literally knows where my string is
@reubenfrench62887 жыл бұрын
How do static variables get inherited? Is there still just one copy for all instances of BaseClass and its subclasses, or is there a separate copy for each of its subclass types?
@DrGreenGiant5 жыл бұрын
May I request a video on virtual inherence please?
@伟-p7p8 ай бұрын
Your video is great, but there are no subtitles after 4.04 seconds, which is a bit difficult for people whose native language is not English. We hope you can solve this problem. Thank you 4:04
@伟-p7p8 ай бұрын
I don't want to interrupt the progress of my studies
@heco.2 ай бұрын
you can really just turn on auto caption
@VoidAshen4 жыл бұрын
oh we aren't even scraping the surface *sees 27/95 oh yea we aren't
@abdulcool12686 жыл бұрын
hey one question. can we not have a function and a class of same name. for eg if we write void player(float xa,float ya) and we have a derived class player. if we create an obj and try to call the player function it shows an error
@EtBukaneluu4 жыл бұрын
could we just move printName to entity class ? and how its gonna look like ?
@bradcasper48232 жыл бұрын
I get an error with code below. Does ":" sign copy contents of "father class" into its child? #include using namespace std; class Entity {public: int X, Y; Entity(int x, int y) { X = x; Y = y; ShowPos(); } void ShowPos() { cout
@TKcKoucher2 жыл бұрын
Hey guys, hoping somene can help with a syntactic doubt here, english is not my native language so sometimes I struggle a bit.. In the example of the video, would it be correct to say that the functionality of Entity class is inherited to the Player class?
@santhoshjallu926 Жыл бұрын
yes, you can also say Player has inherited the entity class or vice versa
@aisha201516 күн бұрын
i love your accent
@Raul11madrid17 жыл бұрын
Thank you .. 🌹🌹
@蜜熊胖胖猪 Жыл бұрын
I thought member function also takes some memory in a class....anyone could explain why size of only return member variables?
@bobdagamer640 Жыл бұрын
Member functions are stored with the rest of the code, not with the instance of the claas. Sizeof only returns the size of the memory used by an instance of an object
@kushalvadher11 ай бұрын
pls show altr for super key word in c++
@InFmou54 жыл бұрын
Its sucks that classes inheritance in separate files was not handled here.... I'm having a lot of issues trying to figure out how to handle a class inheritance from a separate file and I'm getting a redefinition error that I have no idea why is happening.
@bobdagamer640 Жыл бұрын
Do yoy have include guards on the headers?
@pdxbound815 жыл бұрын
I'm only going to learn C++ if you promise my hair will look as cool as yours!
@sgyffysgyffy47366 жыл бұрын
Great video
@Braindrain857 жыл бұрын
Is it better to write the Player- and Entity class in the same cpp file (Entity) or would it be cleaner to make a new file for the Player class?
@lewisb86347 жыл бұрын
Braindrain85 No, not usually. There's nothing stopping you of course, it's all up to you, but classes are generally written in separate files. If the base only has one sub class and they are generally both modified at the same time, then having the two classes in the same file might be beneficial. But if there's only one sub class, then you should probably consider whether it's inheritance you should really be using! Short answer, no put them in different files :)
@1314520Joanna6 жыл бұрын
I tested the same code, somehow I get total of 16 bytes but not 12 like you presented in the video? Is it something wrong with my machine or setup?
@vertigo69826 жыл бұрын
size varies with machine and compiler.
@khaydiandennis14616 жыл бұрын
Why did you use void move
@TheZenytram3 жыл бұрын
so it is basicaly the same concept of a function but for classes.
@sebastianricks94594 жыл бұрын
Hello :). Love the videos. Thank you so much! Have you made one on polymorphism yet?
@ghofranetorjmene2960 Жыл бұрын
hello , the size of char is 1 byte ! so the size of const* char Name is equal to 1 byte and not 4 bytes !
@sleepyNovember_project9 ай бұрын
man
@Djzaamir7 жыл бұрын
can someone please answer me , why did he use const char instead of just char
@Steven-tw7iz7 жыл бұрын
the const keyword changes the variable to a "read only" state so you don't accidentally modify its value later on in the code and cause an unforeseen bug. Its generally considered good programming practice to make any variable that doesn't need to be modified in the code a 'const' variable.
@Djzaamir7 жыл бұрын
i see , Ste_3 D_ven thanks for quick reply :)
@unclesam15453 жыл бұрын
showing off to my high school teacher
@banscheygrey74364 жыл бұрын
X , Y and all class members should be private ! It's a fundamental paradigm of oop. Many peoples which just started learn c++ will do a lot of mistakes in future after this video. And all of privates members should be protected if current class will be parent for others. it's extremely important.
@explorerofworlds5124 жыл бұрын
whenever I type std::cout
@leocarvalho80514 жыл бұрын
beacause that is not char. thats a pointer, and a pointer is 4 bytes on 32 bit pc
@user-dh8oi2mk4f3 жыл бұрын
The player doesn’t have a char variable, it has a char pointer.
@ipizza9941 Жыл бұрын
I thought char was one byte. How is it 4 here?
@alexz3346 Жыл бұрын
You are right the size of a char is one byte. However, he was talking about a pointer to a char. A pointer needs to hold the memory address to the thing it is pointing to. On a 32-bit system it takes 4 bytes to store that memory address.
@KeithKazamaFlick6 ай бұрын
hair god
@seatoaster14917 жыл бұрын
Could you do a video on what a operating system kernel is
@KillzoneKid7 жыл бұрын
Kinda expected to see explanation of types of inheritance (public, protected and private) as well as default inheritance. Little disappointed with this episode of otherwise excellent series.
@栗雪-m6m5 жыл бұрын
Cherno has another video "Visibility in C++"
@nikowill69797 жыл бұрын
great video, still need more in depth stuff...
@geertdepuydt26837 жыл бұрын
And when you want an entity that can't move...?
@mintentha7 жыл бұрын
I don't know for certain, but I assume you could overwrite it to not exist the same way that you can overwrite the constructor?
@QrchackOfficial7 жыл бұрын
Override it or make EntityMoveable and EntityNotMoveable classes, or better yet - have a boolean called moveable in your Entity, add a canMove() method to your Entity that returns moveable and check against that in your Move() method - if canMove() is false, do nothing, or better yet - make your Move() method return a "illegal operation" result/exception