Practical Polymorphism C++

preview_player
Показать описание
Polymorphism is a powerful yet potentially confusing feature of C++. In this video I create a simple Computer Aided Design (CAD) application that exploits polymorphism to keep the application simple yet highly customiseable.

Рекомендации по теме
Комментарии
Автор

Your optimistic attitude and thorough explanations make learning new things such a breeze. You are a great teacher. If you ever made a paid C++ beginner to expert course, I would pay big $$$.

willmapleson
Автор

You are a very clever guy. And I realized that my brain needs some upgrade...

martinofeldman
Автор

You are very smart, placing the camera infront of the mirror is genius.

BinkiklouGaminglol
Автор

The amount of appreciation I feel for you and the knowledge that you have broken down in the first 10 minutes of this video is truly unquantifiable. I am blessed to live in a time where I can seek to learn a topic and stumble upon this informaiton on demand and free. I hope that what I received for me is returned to you ten fold! You are very helpful and kind. Thank you.

KingdomBusiness
Автор

Polymorphism literally means "many shape"-ism, so this seems like the perfect implementation of an example. :)

leerv.
Автор

Man, of all the programmers I've been seeing on YouTube, I think you are one of a kind. I'm' finally understanding a lot of things about OOP just by watching your videos. Never thought that OneNote could have another use other than bloat Windows 10, in fact, those are the parts I love the most. Thank you.

EmmanuelMayor
Автор

The little pause when you cut to real life brings me endless joy, also this is exactly what I was looking for!

I’m creating a program through which I can run other little programs, but since they all have the same structure (Input-Update-Display) I learned I could have been using polymorphism to create a « subProgram » class and clean up my code.

Thank you, have a wonderful day!

orfeasliossatos
Автор

My friends around me talk all the time about how to implement graphics onto the console ( we use Dev C++ ), how to develop actual practical applications instead of small management systems; and that's what most of us actually do, prepare small hotel/bank/transportation management systems and just say this is our semester's project.

But you have made implementing and working with graphics quite intuitive, I understand a lot of why some things are happening, and I can explain why they are happening. This series that you have offered us students has helped me to greatly improve my logic, far above websites like Hacker Rank ( ask any freshmen in my Uni about where to go to improve your problem-solving skills, they say Hacker Rank :/ ). I have learned quite a lot from you, and I can confidently say that if I had sat down to think of the magnitude of the problems which you have dealt with, it would take me some weeks to actually write some something small and applicable. I'm not even confident after watching some of your videos if I can make my things by just looking at your code, though I expect that I should be in the future.

This is how programming should be taught, dealing with tough problems by breaking them into small pieces.

Thank you so much. When I get a job, I'll be sure to contribute to you! :)

SaifUlIslam-dbnu
Автор

@Javidx9 I'd like to thank you for your videos, the way you explain computer science concepts helps me to fill up all the missing knowledge from uni.

KiAbnV
Автор

That bit about the classes becoming abstract because of the pure virtual functions - and the fact that they can't be made into objects, has really clarified a lot for me. Thanks

Janokins
Автор

Great video, I absolutely loved it! However, if anyone else is getting SEGMENTATION FAULT ERROR, notice that at 27:35 line 98-100, javidx9 mentions you need to assign *selectedNode to nullptr => but also assigns nullptr to *line. I believe it's not mentioned but it is visible at 29:58.

janousekpetr
Автор

Very intuitive! A possible nice feature you could add to this application in regards to the spline or the curve would be the ability to add additional nodes or points after it is drawn. So if the user selects the curve between the 2 endpoints (the beginning and endpoints) the application would then get the point defined by the mouse's position and add that as a new node at that location on the curve. It would then use the previous and next nodes as the two endpoints to generate a new curve on the existing curve. Another rich feature would be able to create an arbitrary polygon from multiple lines. When creating multiple lines, if two points coincide you could allow the user to have the option to combine those multiple points into a single point. The arbitrary polygon would not be created unless if it is entirely enclosed, otherwise, you would just have a list of lines with connected vertices.

skilz
Автор

This is a heck of a lot better of an explanation than my University class material! You need to do more stuff like this! Thanks.

arcnaver
Автор

One thing that I learned from watching those is that it may feel intimidating to understand the math in the speed of the video, but when you actually sit down and think about those (takes me 1-2 hours) you start going makes sense!"

Keep it up, amazing stuff!

ValeriCFBG
Автор

Another great video, Thanks :)

a small issue: the zoom in and out factors are not reciprocals (1.1 and 0.9). So, once you zoom in you will not return to the same screen by unzooming. Of course, it’s not critical for a tutorial :)

Автор

In an ecosystem where people generally hate object oriented programming because they've had bad experiences making structures before they know what they need, it's nice to see good videos explaining how to do it better!

DeepFriedOreoOffline
Автор

I'm growing so much in love with this channel.

ivelinkarageorgiev
Автор

OOB is like wine: enjoy with moderation, which is exactly what you did so, yet again, please accept my compliments.
Those are by far, in my opinion, the best videos about programming i saw on Youtube. Since you have an established audience of people who wants to learn some serious programming, you may consider to extend this topic talking about templates at some point. After all, why do something at run time when it can be done at compile time, right?
Keep up the great work. Looking forward for the next episode of the top down city games. Bye

racorescript
Автор

I think I now understand inheritance and polymorphism, at least, a bit better (finally). Ty for educating us all!

delofon
Автор

You have explained the concept very well, Dave. It is a difficult thing to get your head around. Thank you !

rfdave