Encapsulation : grouping related variables and functions operating on them. (Reduce complexity) Abstraction: hiding complex data and methods from user (simple interface) Polymorphism: many forms .. to avoid long if else statements RENDER Inheritance: inherent the qualities of a code (to remove redundant code)
Computer scientists: "ah yes this is an implementation of polymorphism and encapsulation" Also Computer Scientists: "This some spaghetti code right here"
I have tried many times to understand what object oriented programming really is. This was the first successful try. Thanks and congrats for the very high quality video!
Just go through the libraries and the namespaces used in linux code. Thats the best way to understand OOPs. When C++ compiler can covert that c code and layout into OOPs only then we can totally understand how OOPs is being handled.
For me encapsulation is not only about storing properties together and decreasing number of arguments, but what is more important it is all about HIDING implementation details and PROTECTING code from random access. At the same time abstraction is about ignoring unimportant parts of objects providing only essential interface for 'outer world'.
I just looked at so many different explanations of OOP for my interview prep including the "simple for even a child" freecodecamp explanation but this one is by far the best one! Great work. Thanks :)
Nice work. I have no doubt that you are a competent programmer, but more importantly as a teacher, you are a gifted presenter. I usually have to watch tutorials at 1.75 - 2.0 times normal playback to keep from stabbing my eyes out. Your tutorials are actually enjoyable at normal playback speed. Thank you.
as a CS major who is in my Senior year.. this is a great clean & concise explanation on the basics of OOP...I came to this video for a refresher since this is material we went over my first year ....I rarely use OOP but i definitely should ..would of made my life at Uni so much easier
Great video! I am trying to teach myself C# and I really struggle to research certain things when I get stuck because I don't know the name of the concept that I need to look into. This video lays a lot of the groundwork in simple and concise terms. Thank you!!!
This was so needed. There's tons of material out there explaining OOP. But usually the explanation is either vague or a bit impractical. Congratulations for not beating about the Bush and yet not missing anything important.
The harsh reality is, though, that you probably don't understand from watching this video to pass an OOP exam. It takes years to get to a professional level of understanding of OOP. It's a major dedication, as opposed to something that can abstracted and encapsulated into a short video. And that's not even telling you that this video contains errors, despite the speaker's voice being very confident.
Encapsulation is just not about making variables private, it is much more. It is about breaking up the application into different logical and organized parts. So that you can change one part without generally changing all the other parts. Therefore encapsulate the parts that vary from the parts that remain the same.
I'm currently in Programming II at my college which is specifically an object oriented programming class. This video really helped me see what my current class is about. Thanks!
With Encapsulation: Resides Object oriented programming backbone of encapsulating data and functions into single unit called object With Abstraction: We reduce the impact of change in other objects With Inheritance: We can eliminate redundant code With polymorphism: We can refactor codes according to different types in simple manner
You got the definition of Abstraction wrong, and your definition of Polymorphism is not quite right. You wouldn't be refactoring anything to achieve poly.
@@kcs3248 But that's not really what polymorphism is. You don't have to refactor anything, and who knows what in the world he meant by "according to different types". Types of what? One of his other definitions was also not right. Just be careful what you read if you are trying to learn OOP. There's a lot of impressive-looking videos about OOP and many of them are wrong.
Mr. Mosh, thank you for explaining Python in such a base-level common sense manner. You took a 4 hour class and summed it up better than the CISCO Network Academy that I'm going thru. Thank you so much!
you're insane man. i'm reaaaaaly proud of having a compatriot like you. you know our difficulties from iran. for example i can't buy your tutorials. so i will be reeeaaallly thankfull if you publish more contents with us.
I understood more about these concepts in 7mins than 2 hours with my teacher. Thanks!
6 лет назад+3
"We can change or modify one of the methods and it will not impact the rest of the code" - famous last words ;) Class extending, sharing "this" all around the place, mutating the state - that's all the consequences of OOP and it WILL impact the whole program. Granted - it's all about the patterns. But we all know how you can end up with "Spaghetti" code even with OOP. Not to mention presented "Procedural" programming claims should be also contrasted with Functional Programming since Procedural would focus highly on imperatives rather than abstraction functions. Beginners could easily confuse Procedural with Functional at this point. With that being said - thanks for gr8 video :)
This is the first ever video that I watch about OOP, in fact this is the first ever information I learn about the OOP. Honestly speaking - I grasped the general idea. After watching it two more times I think I understood the concepts. From a single video from the first time. Thank you, Mosh! Thank you for braking down the complex matter into easily digestible bite sized bits.
@@HOWYOUDOIN884 I partly agree, but I've seen many times, that teachers and professor deepdive into very subtle details before explaining the whole picture simplified. This is not how you teach things. A video like this before getting into details would help many people understand topics way faster and better
@@One.Zero.One101 I didn't miss the point of what the guy was saying: "College text books are too hard". OOP takes years to get good at, assuming one's brain is worthy of the challenge and the commitment. And yes, I'm tired of people lying on their resume claiming to be good at OOP, when in reality they were just intrigued by a fancy RUclips video and have just dabbled in writing classes . I saw one misuse of the word "interface", and then jumped a little past half way and found another mistake @ 4:39 (confusing abstraction with encapsulation). So as pleasing as it may appear to a newbie, they easily could walk away misinformed. It's easy to be attracted to easy material, indeed, but it's also easy to be misinformed and not realize it. That's my complaint about the majority of people who quickly fall in love with an educational video, not realizing the information is not quite right. I think people should read OOP books written by authors with well-established expertise, and not be so attracted to fancy youtube vids.
Thanks, Mosh! I learned a lot! I just learned to code recently, but I am really passionate about it. I hope I can always be a better programmer over time.
Funny how things change, In the era of modern application development, where components and microservices dominate, procedural-style short and modular code might seem more appealing these days. It provides a practical alternative to the complexity of OOP, helping you build fast, maintainable, and scalable small modular components with less overhead. Sometimes, less really is more.
I don't even know why I'm watching OOP-oriented videos - I was simply searching for UE4 Blueprints tutorials, so only loosely related topic - but that was a very solid explanation. Thank you, I'm glad I've watched it.
Woah that DVD player metaphor is outstanding. I’ve been really struggling with wrapping my head around OOP but that metaphor really helped things click for me. Well done, and subscribed! Looking forward to checking out your python vids!
Been programming for 22 years and going to try OOP for the first time. Looks like it will make my programming easier in some aspects. All this time I got away with procedural programming and my current job (programming automation) does not need me knowing OOP but I hope to get a job in software engineering, and I feel OOP is a must to master.
To be honest, I like every tutorial of you on programming. In PNG the university dont have such a lecturer that can explain in the lectures room the way you explain in all your upload tutorial its amazing.
@@ChrisFouadHabibifromMars This may be old but I'll appreciate your reply to a question if you don't mind. Do they ask questions concerning these in interviews?
I code pretty well with classes on C# and I know access modifiers and class responsibilities and make clean code, but I still don't understand OOP concepts. This video helped me understand it.
Thank you for the super clear and short explanation, it has helped so much, could you explain the difference between functional and procedural programming in a similar video ?
Very grateful for your work on this clear, pleasant and informative video. I am new to programming and decided to start off by learning Python. When I began learning about it I found out it is a object-oriented language and scratched my head not understanding what that even implies... After watching this video, I can now go back to learning with clarity. Thank you! Subscribed and thumbs up!
C++ gives you all of those benefits, plus procedural when need along with lambdas, functions pointers, function objects and templates consisting of function templates, class templates, and variadic templates... but c++ also gives you the added benefit when a set of classes that are related can reference or modify internal protected or private members by labeling them as a friend. This doesn't account for the fact that C++ is a strongly typed language, and has various storage type classifiers such as static, const, mutable, inline, etc... Modern C++ also has constexpr which is a very useful precompile feature. Suppose you have a class called Motor this could be a nested class within a Car class, however, you might want the Motor class to be an independent class because you can have a motor in a Boat, a Bike, Train, Plane, ATV, or it can even be an electrical motor to some kind of power tool. So in this situation, your base Motor class would be complete abstract, then your VehicleMotor class would derive from that. Then your derived Vehicle class objects such as a Car would have friend access to the VehicleMotor class so that it can change its internal properties such as HorsePower, NumberOfCylinders, etc. Now the Vehicle Motor class might not be able to access the Car's private members directly but could be a friend to access its private methods or its protected members... This doesn't even account for the preprocessor directives and macros. Yes, many people frown upon Macros, but in some contexts and if done carefully and correctly, they can make for good text expansion and replacement. I wouldn't rely on them for setting or changing values, or passing data types around, but they can still be useful. With the current release of C++20 in which I do not have a current compiler as of yet, we are now being introduced to Concepts, Coroutines, Modules and more! It's just that with C++ you need to know what you are doing as C++ will allow you to write code to shoot yourself in the foot as long as it compiles and links and provided you don't have any run time errors or crashes. You can still have memory leaks, dangling pointers or references, invalid pointers, and references, etc. Other things such as out of bounds indexing or accessing memory that doesn't belong to you will cause unhandled exceptions. Knowing when to cache something into a local variable within its a specific scope or stack frame is vital compared to knowing when to put something on the heap. Dynamic programming is good in many contexts but one has to be careful, that's why the standard library is so versatile with its containers and algorithms, smart pointers, etc. C++ gives you almost all of the concepts of OOP without the garbage collection of C# and Java with very minimal overhead and more. It is also considered a lower layer of the high-level languages next to C and Objective C, any lower and you'd be working with ASM. It is very fast and efficient and when done correctly, the source code for the application or the program is practically invisible as modern C++ compilers are excellent at what they do and are only improving. They aren't completely perfect as they do have bugs, but they can generate object code or assembly code much better than you can! They will utilize specific operating system functionality and CPU instructions in manners that you would never think of! Their error messaging systems are becoming much better along with their linker and debugger tools. I've messed around with C# a little, JavaScript a little and Python but when it comes to the type of programming that I'm into doing such as 3D Graphics Rendering Engines, Hardware Emulators, Sound Processing, Compiler Design, etc. this is where languages such as C, Objective C, and C++ excel above your high-end languages. If you're looking to do something quick and fast such as an online interactive program for quick access and basic functionality then yes, by all means, Java, JavaScript, C#, Python and others are perfect for the job. However, when you are writing the backend, frameworks, libraries, server code, etc. that's where these languages are usually preferred. This is why C++ is considered a multi-paradigm language! It can still work like C, it has the ability to inline assembly blocks as their own scope within a function for optimizing loops, etc. the capabilities such as C# and Java without the overkill of the garbage collection, and it isn't restricted to have everything as a class or an object or a smart pointer behind the scenes such as seen in Python, C#, or Java. However, it is a strongly typed language which makes it a great tool to master! Happy Coding!
@@muhammadshoaibmushtaq5693 No, not at all, just pointing out some of the benefits of the language. Don't get me wrong, there are also cons, but the pros outweigh the cons by a huge advantage!
Thank you Mosh, I really enjoyed this concise and clear video. I understand what OOP is now and can’t wait to get to that topic in my learning. I have just started learning to code in Python.
But in reality, you couldn't watch this video and pass a test over OOP. Not to mention the mistakes in the video, where he uses the wrong word, like "abstraction", which has nothing to do with reducing impact of change. So in reality, just because this video made you feel good, you have a long road ahead of you to become an expert at OOP.
Finally an example of OOP without a car! Thank you!
Сидредин this was a good one
1:20 - 1:25 is a car example
Haha.. there is no oops without a car example
@@shivangchaturvedi237 there is...with animals
:))))
1:02 Encapsulation
3:29 Abstraction
4:41 Inheritance
5:27 Polymorphism
Thank you 😊
Thanks
Encapsulation : grouping related variables and functions operating on them. (Reduce complexity)
Abstraction: hiding complex data and methods from user (simple interface)
Polymorphism: many forms .. to avoid long if else statements RENDER
Inheritance: inherent the qualities of a code (to remove redundant code)
Thank you for this!
Computer scientists: "ah yes this is an implementation of polymorphism and encapsulation"
Also Computer Scientists: "This some spaghetti code right here"
Moms spaghetti, knees weak arms are heavy
@@cyrusrice5228 ruclips.net/video/Q5HGDWlcCRs/видео.htmlsi=kYsRLEXScugmP5ml
I have tried many times to understand what object oriented programming really is. This was the first successful try. Thanks and congrats for the very high quality video!
100% Agreed - Great job Mosh Thank you.
Just go through the libraries and the namespaces used in linux code. Thats the best way to understand OOPs. When C++ compiler can covert that c code and layout into OOPs only then we can totally understand how OOPs is being handled.
@@srikanthpen3250 where can we learn that from? I mean what would you recommend?
100% agreed!!
You need to learn more about Java animation and Graphics
Memory trick: "Oops I ate A PIE"
A - Abstraction
P - Polymorphism
I - Inheritance
E - Encaspulation
thumbs up to help someone out
I memorized it the same way! :))
hahaha really nice mnemonic trick!
Haha thanks!
thank you for this! :)
I just remember it!?
For me encapsulation is not only about storing properties together and decreasing number of arguments, but what is more important it is all about HIDING implementation details and PROTECTING code from random access. At the same time abstraction is about ignoring unimportant parts of objects providing only essential interface for 'outer world'.
I learned it that way, I was a bit confused here.
This video has other errors, too.
You learned from herbet schidlt book??
@@thinkersandimaginers6334 It's just from my personal experience,
you just repeated what he said
I just looked at so many different explanations of OOP for my interview prep including the "simple for even a child" freecodecamp explanation but this one is by far the best one! Great work. Thanks :)
What a simple and illustrative way of explaining OOP. I love your videos, Mosh. Keep up the exceptional work!
Nice work. I have no doubt that you are a competent programmer, but more importantly as a teacher, you are a gifted presenter. I usually have to watch tutorials at 1.75 - 2.0 times normal playback to keep from stabbing my eyes out. Your tutorials are actually enjoyable at normal playback speed. Thank you.
Finally a video explaining OOP that is well organized, thorough, and applies it to real programming examples. THANK YOU.
as a CS major who is in my Senior year.. this is a great clean & concise explanation on the basics of OOP...I came to this video for a refresher since this is material we went over my first year ....I rarely use OOP but i definitely should ..would of made my life at Uni so much easier
"of" is not a verb
*have
"of" as in "because of" imho @@archiewoosung5062
@@archiewoosung5062 He is smarter than u. Stop it.
@@debrachambers1304 He is smarter than u. Stop it.
Mosh, I read lots of OOP books, you just extracted all the useful contents out of it and translated it in simple words with no jargon. Damet warm.
But you didn't notice the glaring mistakes? The part on abstraction is about 99% wrong.
the BEST channel for programming explanation. even the easy english words are explained!
OMG everything just clicks and makes so much sense, thank you for making this video
Mosh is AWESOME. He was made to be a good teacher. You RULE Mosh! 😛
Great video! I am trying to teach myself C# and I really struggle to research certain things when I get stuck because I don't know the name of the concept that I need to look into. This video lays a lot of the groundwork in simple and concise terms. Thank you!!!
This was so needed. There's tons of material out there explaining OOP. But usually the explanation is either vague or a bit impractical. Congratulations for not beating about the Bush and yet not missing anything important.
I have been Googling these concepts almost all day yesterday. Now this short video and that is it, I get it now :) I guess you made my day!!!
The harsh reality is, though, that you probably don't understand from watching this video to pass an OOP exam. It takes years to get to a professional level of understanding of OOP. It's a major dedication, as opposed to something that can abstracted and encapsulated into a short video. And that's not even telling you that this video contains errors, despite the speaker's voice being very confident.
This video cleared up the fog I had when it came to Object Oriented programming. Thanks man. It feels like I've broken down huge barrier.
Hey,
if you you watch the video in double speed, you master oop in even three and a half minutes!
It worked actually xD
lol XD
Good point xD
Hahaha
same buddy
You just helped to understand oop after two years of university in just 7min!!!! I will blog about this in my future blog app for suree
Encapsulation is just not about making variables private, it is much more. It is about
breaking up the application into different logical and organized parts. So that you can
change one part without generally changing all the other parts. Therefore encapsulate
the parts that vary from the parts that remain the same.
You helped me understand OOP in minutes more than my professors did in hours of lecture. Thank you!!
I'm currently in Programming II at my college which is specifically an object oriented programming class. This video really helped me see what my current class is about. Thanks!
This is the simplest, precise and easy to understand explanation I have found until now.
My God...
7 minutes and alot of things in detail.
Thanks Mosh.
With Encapsulation: Resides Object oriented programming backbone of encapsulating data and functions into single unit called object
With Abstraction: We reduce the impact of change in other objects
With Inheritance: We can eliminate redundant code
With polymorphism: We can refactor codes according to different types in simple manner
You got the definition of Abstraction wrong, and your definition of Polymorphism is not quite right. You wouldn't be refactoring anything to achieve poly.
Those aren't very good definitions, though. Your definition of abstraction is incorrect. And polymorphism can be acheived before any "refactoring".
@@kcs3248 But that's not really what polymorphism is. You don't have to refactor anything, and who knows what in the world he meant by "according to different types". Types of what? One of his other definitions was also not right. Just be careful what you read if you are trying to learn OOP. There's a lot of impressive-looking videos about OOP and many of them are wrong.
Best example of encapsulation I've ever seen, thank you
Mr. Mosh, thank you for explaining Python in such a base-level common sense manner. You took a 4 hour class and summed it up better than the CISCO Network Academy that I'm going thru. Thank you so much!
you're insane man. i'm reaaaaaly proud of having a compatriot like you. you know our difficulties from iran. for example i can't buy your tutorials. so i will be reeeaaallly thankfull if you publish more contents with us.
Finally someone explains it casually and clearly! Thanks a lot!
This is the best, clearest explanation I've seen so far... Thank you!!!
I agree!
I understood more about these concepts in 7mins than 2 hours with my teacher. Thanks!
"We can change or modify one of the methods and it will not impact the rest of the code" - famous last words ;) Class extending, sharing "this" all around the place, mutating the state - that's all the consequences of OOP and it WILL impact the whole program. Granted - it's all about the patterns. But we all know how you can end up with "Spaghetti" code even with OOP. Not to mention presented "Procedural" programming claims should be also contrasted with Functional Programming since Procedural would focus highly on imperatives rather than abstraction functions. Beginners could easily confuse Procedural with Functional at this point.
With that being said - thanks for gr8 video :)
The best explanation about the 4 pillars of OOP that I watched in my life, ty Mosh!.
This is the first ever video that I watch about OOP, in fact this is the first ever information I learn about the OOP. Honestly speaking - I grasped the general idea. After watching it two more times I think I understood the concepts. From a single video from the first time. Thank you, Mosh! Thank you for braking down the complex matter into easily digestible bite sized bits.
Polymorphism : you gave the best example with inheritance 🔥🔥🔥 many of them will never appreciate it...
2.23 - "they are decoupled". This really helped my understanding. Thanks
Wish f**king college textbooks were as short and straightforward! Thanks for the upload Mosh!
You just want things to be easier than they are. You are probably the type that is going to lie on your resume.
@tiluu you mean people that created child labour
@@HOWYOUDOIN884 I partly agree, but I've seen many times, that teachers and professor deepdive into very subtle details before explaining the whole picture simplified. This is not how you teach things. A video like this before getting into details would help many people understand topics way faster and better
@@Heisenberg355 exactly
@@One.Zero.One101 I didn't miss the point of what the guy was saying: "College text books are too hard". OOP takes years to get good at, assuming one's brain is worthy of the challenge and the commitment. And yes, I'm tired of people lying on their resume claiming to be good at OOP, when in reality they were just intrigued by a fancy RUclips video and have just dabbled in writing classes . I saw one misuse of the word "interface", and then jumped a little past half way and found another mistake @ 4:39 (confusing abstraction with encapsulation). So as pleasing as it may appear to a newbie, they easily could walk away misinformed. It's easy to be attracted to easy material, indeed, but it's also easy to be misinformed and not realize it. That's my complaint about the majority of people who quickly fall in love with an educational video, not realizing the information is not quite right. I think people should read OOP books written by authors with well-established expertise, and not be so attracted to fancy youtube vids.
The jazz music, the best explanations, thank you for introducing me so well roundly!
Mosh is just handing me a free education better than my college
That's the best video I've ever seen about OOP. Here I found lot of info I coudn't find at other sources! Thank you so much!
Thanks, Mosh! I learned a lot! I just learned to code recently, but I am really passionate about it. I hope I can always be a better programmer over time.
Funny how things change, In the era of modern application development, where components and microservices dominate, procedural-style short and modular code might seem more appealing these days. It provides a practical alternative to the complexity of OOP, helping you build fast, maintainable, and scalable small modular components with less overhead. Sometimes, less really is more.
i officially declare this as the best POO intro i ever saw in my life
thankssss so much my friend!!
I don't even know why I'm watching OOP-oriented videos - I was simply searching for UE4 Blueprints tutorials, so only loosely related topic - but that was a very solid explanation. Thank you, I'm glad I've watched it.
That was a lot of info to cram into 7 min. Bravo!!!!
that was the best explanation, ive watch a lot about OOP but this is the only one that explains it well
Woah that DVD player metaphor is outstanding. I’ve been really struggling with wrapping my head around OOP but that metaphor really helped things click for me. Well done, and subscribed! Looking forward to checking out your python vids!
yep, you can think of the dvd player as a class, and the buttons on the dvd player as methods inside that class
@@clerpington_the_fifth thanks but what are the properties ?
Your sketch showing object property as variables and methods as functions really sparked a light in my brain. Thanks.
Thank you for focusing in this one topic, I've been having a hard time wrapping my head around this. Your video really helped.
Danke!
Been programming for 22 years and going to try OOP for the first time. Looks like it will make my programming easier in some aspects. All this time I got away with procedural programming and my current job (programming automation) does not need me knowing OOP but I hope to get a job in software engineering, and I feel OOP is a must to master.
How is it going now?
To be honest, I like every tutorial of you on programming. In PNG the university dont have such a lecturer that can explain in the lectures room the way you explain in all your upload tutorial its amazing.
This video just made me pass my exam in structured system development course at my university (y)
Finally an example of OOP without a car but again with many other simple examples not advance
Amazing... I never found such easy and to-the-point explanation of OOP Principles as Mosh described in only 7 minutes.
Thank's profesor, your my "STAR"
Great video I wish I watched this before my interview. You forget these things
Yeah man same, like i understand it in my head but I get nervous
@@ChrisFouadHabibifromMars This may be old but I'll appreciate your reply to a question if you don't mind. Do they ask questions concerning these in interviews?
woww.!! you taught me what I couldn't learn in an entire semester.
I love your videos! There always so easy to follow and understand. This one definitely didn't disappoint!
This gave me a minor breakthrough. I can't thank you enough.
Hi Mosh..
Really your videos are smooth understandable...Thanks
I code pretty well with classes on C# and I know access modifiers and class responsibilities and make clean code, but I still don't understand OOP concepts. This video helped me understand it.
I'm already applied these concepts in my code without even knowing the terms for that. At least now I know
Thank you for the super clear and short explanation, it has helped so much, could you explain the difference between functional and procedural programming in a similar video ?
Best programming teacher I've found so far! I have a lot of his courses on Udemy.
Let me guess, you are a lil fucker from India that just likes to sound confident.
@Major Key like most Indians you don't make sense but you'd like to think your conference in what you're saying is all that matters
Very grateful for your work on this clear, pleasant and informative video. I am new to programming and decided to start off by learning Python. When I began learning about it I found out it is a object-oriented language and scratched my head not understanding what that even implies... After watching this video, I can now go back to learning with clarity. Thank you! Subscribed and thumbs up!
Well done. Thanks for sharing this content. Simple and easy to follow.
This is the best OOP explanation i've ever seen. Thank you so much for that!
C++ gives you all of those benefits, plus procedural when need along with lambdas, functions pointers, function objects and templates consisting of function templates, class templates, and variadic templates... but c++ also gives you the added benefit when a set of classes that are related can reference or modify internal protected or private members by labeling them as a friend. This doesn't account for the fact that C++ is a strongly typed language, and has various storage type classifiers such as static, const, mutable, inline, etc... Modern C++ also has constexpr which is a very useful precompile feature.
Suppose you have a class called Motor this could be a nested class within a Car class, however, you might want the Motor class to be an independent class because you can have a motor in a Boat, a Bike, Train, Plane, ATV, or it can even be an electrical motor to some kind of power tool. So in this situation, your base Motor class would be complete abstract, then your VehicleMotor class would derive from that. Then your derived Vehicle class objects such as a Car would have friend access to the VehicleMotor class so that it can change its internal properties such as HorsePower, NumberOfCylinders, etc. Now the Vehicle Motor class might not be able to access the Car's private members directly but could be a friend to access its private methods or its protected members...
This doesn't even account for the preprocessor directives and macros. Yes, many people frown upon Macros, but in some contexts and if done carefully and correctly, they can make for good text expansion and replacement. I wouldn't rely on them for setting or changing values, or passing data types around, but they can still be useful.
With the current release of C++20 in which I do not have a current compiler as of yet, we are now being introduced to Concepts, Coroutines, Modules and more! It's just that with C++ you need to know what you are doing as C++ will allow you to write code to shoot yourself in the foot as long as it compiles and links and provided you don't have any run time errors or crashes. You can still have memory leaks, dangling pointers or references, invalid pointers, and references, etc. Other things such as out of bounds indexing or accessing memory that doesn't belong to you will cause unhandled exceptions. Knowing when to cache something into a local variable within its a specific scope or stack frame is vital compared to knowing when to put something on the heap. Dynamic programming is good in many contexts but one has to be careful, that's why the standard library is so versatile with its containers and algorithms, smart pointers, etc.
C++ gives you almost all of the concepts of OOP without the garbage collection of C# and Java with very minimal overhead and more. It is also considered a lower layer of the high-level languages next to C and Objective C, any lower and you'd be working with ASM. It is very fast and efficient and when done correctly, the source code for the application or the program is practically invisible as modern C++ compilers are excellent at what they do and are only improving. They aren't completely perfect as they do have bugs, but they can generate object code or assembly code much better than you can! They will utilize specific operating system functionality and CPU instructions in manners that you would never think of! Their error messaging systems are becoming much better along with their linker and debugger tools.
I've messed around with C# a little, JavaScript a little and Python but when it comes to the type of programming that I'm into doing such as 3D Graphics Rendering Engines, Hardware Emulators, Sound Processing, Compiler Design, etc. this is where languages such as C, Objective C, and C++ excel above your high-end languages.
If you're looking to do something quick and fast such as an online interactive program for quick access and basic functionality then yes, by all means, Java, JavaScript, C#, Python and others are perfect for the job. However, when you are writing the backend, frameworks, libraries, server code, etc. that's where these languages are usually preferred.
This is why C++ is considered a multi-paradigm language! It can still work like C, it has the ability to inline assembly blocks as their own scope within a function for optimizing loops, etc. the capabilities such as C# and Java without the overkill of the garbage collection, and it isn't restricted to have everything as a class or an object or a smart pointer behind the scenes such as seen in Python, C#, or Java. However, it is a strongly typed language which makes it a great tool to master!
Happy Coding!
Bro, Wtf? You tryna scare me?
@@muhammadshoaibmushtaq5693 No, not at all, just pointing out some of the benefits of the language. Don't get me wrong, there are also cons, but the pros outweigh the cons by a huge advantage!
@@skilz8098 lol, I was just kidding. Thanks for sharing.
You just wrote a book dude haha
@@Azul719 It's barely a chapter. Only a few paragraphs.
Sir, you are an excellent teacher.
This is only of the best one can find! Thank you so much. :)
Thank you for taking this topic with a simpler method.
Thank you Mosh, I really enjoyed this concise and clear video. I understand what OOP is now and can’t wait to get to that topic in my learning. I have just started learning to code in Python.
As somebody relearning how to code Java, Mosh's youtube releases have been invaluable.
I can say nothing but. Thank you for sharing your knowledge with those that want to learn programming.
This is the best video on oops that I watched till now . Thank you Mosh. You made our life easy by showing oops s this easy to understand 👏👏
But in reality, you couldn't watch this video and pass a test over OOP. Not to mention the mistakes in the video, where he uses the wrong word, like "abstraction", which has nothing to do with reducing impact of change. So in reality, just because this video made you feel good, you have a long road ahead of you to become an expert at OOP.
One of the best programming abstract. Thanks Mosh
Came with low expectations, but it was actually really good, tnx
Other courses make it so much more complicated to explain what here has been plainly expressed. Congrats!
I felt personally attacked in that intro, I have a variety of fettucine, cavipati, angelhair, bowtie and penne code thank you very much.. :D
Greatest explanation I've ever watched. Thank you!
Perfect for a coffee break ;)
HA agreed, that's exactly what I was doing while watching this. Great video for new comers or to recap OOP basics! THX
A coffee break that's less than 30 minutes ain't a real coffee break.
Indeed
you should relax and breath fresh air on coffee break, for fucks sake man
Yeah!! Similar thing happened with me
Never really understood these concepts until now. Thanks Mosh ! :)
flawlessly explained. Thank you, Mosh.
5 years and still a very good explanation. Bravo!
One of the best explanations about the subject. Well structured and easy to follow.
Every computer science lecturer should watch and understand this video before confusing the students. Thanks Mosh Bro.
Let me guess, you're just another fuck head from India?
@@HOWYOUDOIN884 oh u mean ur future bosses? 😂
your way of teaching .....awsome man..very well explanation..!!
I am Italian and that spaghetti, in the 0:55 frame, are not spaghetti. Great and clear video, thank you
Your videos are simple to understand, you make very clearly for .net platform... Thank you for your videos👌😔🙏
Programming with Mosh definitely bcoz you are the only RUclipsr who makes super quality videos on dot net...
Let me guess, you are a fucker from India that just likes to agree but doesn't understand shit, and you also don't wear deodarant?
These youtube videos better than UNI classes. Thanks thanks thanks! 😍
What a brilliant Video! Thank you!
Best description among many and many text books and papers that I have read or videos I have watched. Thank you Mosh!
Encapsulation 2:00
Abstraction 3:30
Inheritance 4:45
Polymorphism 5:28
You’re an excellent instructor. Thank you.
Mind Opening, Informative, pactical
I appreciate you clarifying the idea, Mosh.