SINGLETONS in C++

  Переглядів 191,524

The Cherno

The Cherno

День тому

Go to www.hostinger.com/cherno and use code "cherno" to get up to 91% OFF yearly web hosting plans. Succeed faster!
Patreon ► / thecherno
Instagram ► / thecherno
Twitter ► / thecherno
Discord ► thecherno.com/discord
Series Playlist ► thecherno.com/cpp
This video was sponsored by Hostinger.

КОМЕНТАРІ: 374
@TheCherno
@TheCherno 4 роки тому
Thanks for watching, hope you enjoyed the video! Don't forget to check out hostinger.com/cherno and use code "cherno" to get up to 91% OFF yearly web hosting plans! ❤
@AngelTaylorgang809
@AngelTaylorgang809 4 роки тому
The Cherno make a data structure series bro
@vvill-ga
@vvill-ga 4 роки тому
lmao "up to 91% off"... My price went from $138 to $129...
@user-pg8xt3tn1w
@user-pg8xt3tn1w 4 роки тому
Can i have an English subtitle to help with my study?
@MrTega1975
@MrTega1975 3 роки тому
@The Cherno, can you explain *Dependancy Injection* pattern in C++ ?
@sh4ilendra
@sh4ilendra 3 роки тому
Please make a most used design pattern related series... much needed..
@neerajbute2094
@neerajbute2094 4 роки тому
I'd really like more of such design pattern content. Big fan btw, great content.
@jefferson5884
@jefferson5884 10 місяців тому
That's a really good topic. I have messed with PHP and have seen patterns like MVC, event driven, modular.. And I'd like to know how it is in C++ world
@srijan4622
@srijan4622 2 роки тому
There is one important functional difference between a namespace and a singleton class. In a namespace, all of the data is initialized/loaded into memory when the program first starts; this might be undesirable sometimes when we don't want all the data initialized until we actually need it. In contrast, singleton instances are only loaded during the first call to the "Get()" method.
@tamasdemjen4242
@tamasdemjen4242 4 роки тому
Great content from an experienced developer. I would note that technically there's a little functional difference between static member variables and local static variables. When you moved the static inside the Get() function, you made the initialization order deterministic. Local static variables are initialized the first time control passes through the declaration. This makes it safe to call one singleton from another singleton. Also local static variables are thread-safe beginning with C++11 (except when --fno-threadsafe-statics is used in GCC). Plain old static member variables aren't thread safe, and the undefined initialization order causes a nightmare situation. This is less of an issue with ints and floats, but if a singleton contains a class, like a string, you're in a really big trouble. Especially when you're using one singleton/static from the constructor of another singleton/static, and you have no way of knowing which one gets initialized first, and if you're out of luck. You may be using a variable that hasn't even been constructed or assigned yet. The destruction order is an even bigger mess than the initialization order, so stay away from custom destructors that rely on other statics. The object being destructed may be using an object that has already been destructed earlier.
@hsaidinsan6345
@hsaidinsan6345 4 роки тому
Tamas Demjen We really need people like you in the comments section
@LoopinFool
@LoopinFool 4 роки тому
Actually, the standard guarantees that destruction order will always be the reverse of the construction order, so that's not so horrible. Thank you for your comment - it's what I would have written if you hadn't already posted.
@Yoyoyo_gamer
@Yoyoyo_gamer 3 роки тому
Thanks for your comment, I had not used the first time of Singleton he showed , where he uses Static Member Variables, only with Local Static Variables. Now I know the differences. :D
@Bozemoto
@Bozemoto 2 роки тому
If the statics are for making the variables have file-scope then it can save you some recompilation time when adding or removing data that is no longer part of the interface.
@Bozemoto
@Bozemoto 2 роки тому
@Ralph Reilly If you add static before a global variable defined in a cpp it goes from being a global to having file scope. As in you can't access it outside the cpp. Means the compiler can rip out the symbol right away instead of waiting for the linker to do it. Moving the private statics in the class definition to the cpp would mean changing them wouldn't change the header at all so would avoid recompilation from header-changes.
@reisvc
@reisvc 4 роки тому
Yes! Please, do cover more Design Patterns! Side question: can you type and talk like that or is that edited? Regards!
@sriramiyer9840
@sriramiyer9840 4 роки тому
I am so damn happy this series is back. Have been waiting for a c++ video for so long!!
@PrinceGupta-jo8lo
@PrinceGupta-jo8lo 4 роки тому
Thanks cherno for all these videos. I binge watched you whole series almost a week ago so that I can be comfortable with c++ again(even more now). It really helped me to understand c++ codebase of mlpack organization, I even made a PR on it which is almost accepted. Thanks a lot.
@xdestyn
@xdestyn 4 роки тому
Loving the content! Could you possibly do a video on iterators? As far as what they are, how you can use them in a queue/linked list implementation, etc
@eyalpery8470
@eyalpery8470 4 роки тому
This video is exactly what I needed, it helps me think of how to organize my code better. Would love to see more design pattern videos!
@gustavoleite8611
@gustavoleite8611 4 роки тому
Cherno, have you considered covering more design patterns in the C++ series? Thanks!
@kashish0007
@kashish0007 4 роки тому
Keep it up, i am a student that is c++ geek. I learnt a lot through you.
@legasa6343
@legasa6343 4 роки тому
Thank you The cherno. This is great, just what I need. I wish you can look at more design patterns in future, I mean yuo realyy explain in a way that makes it easy to understand.
@jared0801
@jared0801 3 роки тому
Glad to hear you say you're just getting started! Can't wait!
@philmarsh3859
@philmarsh3859 3 роки тому
One use case for C++ singleton that makes sense to me is the case where you have several classes with a common base class. Each of the derived classes could be a singleton, benefiting from reused code and encapsulation and they're similar enough to where it makes sense to derive them all from a single base virtual class. In this case, the base class takes care of most of the structure - making it reusable. Then the singleton derived classes have just a few minor differences for each of their use cases.
@rcookie5128
@rcookie5128 4 роки тому
Already knew about singletons, but super helpful that I learned how to circumvent the cumbersome declaration of the static instance in the translation unit.
@TimeFadesMemoryLasts
@TimeFadesMemoryLasts 4 роки тому
Thank you so much! Your videos are so good. Thanks to you I learned some little details that are important to know about C++. I would love to see more on idioms. The only idiom everyone seems to use for tutorials is the pimpl idiom.
@mikefochtman7164
@mikefochtman7164 Рік тому
Great Video. First ran across singletons on a Java project (where, as you point out, everything is a class). Since then, used it occasionally if needed to reuse some object that was 'expensive' to create. One was where a lengthy connection to another server database had to be established. Each query on the object was stand-alone, but creation took time. So we created once in a singleton and then all the code could 'get' and 'query' without having to recreate the connection all the time.
@essmunson
@essmunson Рік тому
more design patterns please!! you're by far the best C++ teacher on yt
@NicolaiSyvertsen
@NicolaiSyvertsen 2 роки тому
A Log Class is a good example of a singleton. You just need a way to log things so you instantiate the Log singleton and can do Log.warning("something"). Other examples are in plugin architectures where a singleton can act as an API interface. You want to provide a certain class of functionality, then there is a singleton for that and you bind to it by registering handlers etc.
@wz5445
@wz5445 3 роки тому
Love this series, more design patterns please!!!!
@rudragouda5762
@rudragouda5762 4 роки тому
I really like your explanation very much, the way you construct the solution makes things more easy, Please add video on all the other class Design Patterns
@drakejohnson3803
@drakejohnson3803 4 роки тому
Good theoretical explanation while keeping it simple. Plus, a relevant example. Great video!
@caliphsystem
@caliphsystem 2 роки тому
You C++ classes are simply brilliant. Thank you.
@Mauritz5
@Mauritz5 4 роки тому
YAY! More C++ :)
@brunooliveirasoares7489
@brunooliveirasoares7489 4 роки тому
I'm bagging you: more design patterns! great video!
@priyadarshini.d4980
@priyadarshini.d4980 2 роки тому
Hey Cherno.. Great content and well explained. Expecting more videos on other design patterns as well..!!
@johnnygood7997
@johnnygood7997 4 роки тому
We need more of this
@chrisstone-streetlightinte5629
@chrisstone-streetlightinte5629 4 роки тому
I particularly would like to see a video on the Command pattern, since I've been told its useful for game dev.
@SPL1NTER_SE
@SPL1NTER_SE 3 роки тому
I agree, of course there are other resources for that, but I really like the way Yan explains things!
@lexverheem9109
@lexverheem9109 2 роки тому
Please do more design patterns! Your content is great and your explanation is very clear and elaborate!!
@lKyoto
@lKyoto 4 роки тому
Les goooooo. Hell yeah, more c++ content. 🔥🔥
@sameerppradhan
@sameerppradhan 2 роки тому
Would definitely to see some other design patterns video. Love your style of teaching and examples.
@adamjcasey
@adamjcasey Рік тому
This is HUGE in embedded programming because we have to often interface with C libraries. The singleton pattern allows us to interface with C callbacks but still use dependency injection for unit test. I love your videos. You are doing this right. C++ is the best language ever made and you are making this accessible
@dexam1234
@dexam1234 6 місяців тому
thanks for this comment!
@kristystrives6979
@kristystrives6979 3 роки тому
I love your video. Some explanations (e.g. the linkedin explanation ) are confusing because they use complicated classes as their demo. I really liked how you didn't bother making a working random generator function and focused on singletons!
@gmc254quads6
@gmc254quads6 4 роки тому
Dare I say, your playlist of C++ videos are the best in the universe so far, youtube aside. I can not thank you enough. If I had the financial ability, Id definitely join the patreon group, not for the extra access but just to show my support for the greatest C++ videos on the net. Who knows, maybe I will get there soon.
@kitgary
@kitgary 4 роки тому
Excellent! I finally find some useful C++ tutorial on UKposts! Thanks!
@Zatmos
@Zatmos 4 роки тому
I recently used a singleton for a SDL wrapper. I wrote an initializer class in the protected field of the window class with a static instance of that initializer such that once the user instantiate a window, it will initialize SDL automatically in the constructor of the static initializer object and de-initialize it at the end of the main in the destructor of the initializer. I've not yet used singletons in other ways than the one I described and I simply don't use them that much.
@AndreasAn
@AndreasAn 2 місяці тому
This was pretty useful and easy to understand. Thank you!
@mohammedyasser4717
@mohammedyasser4717 4 роки тому
loved the video. Please make more Design pattern tutorials like observer pattern, Factory pattern, the decorator pattern etc.
@TheMaxanas
@TheMaxanas 4 роки тому
That's fantastic! Thank you a lot! More Patterns please
@TNothingFree
@TNothingFree 2 роки тому
We use a lot of static function variables in methods especially for fixes that should not break ABI (Introducing variables or reordering may break ABI). The best advantage from this approach is the guarantee for MT safety when initialization the variable - either better if the variable is a class. Something you didn't mention (Or I missed it) is MT thread safety which is the crucial point for singleton initialization. (Refers to the famous double-if-lock pattern).
@sasoyu8922
@sasoyu8922 4 роки тому
More c++ ep please!
@BookWormsOriginal
@BookWormsOriginal 4 роки тому
Thank you a lot for the great content. Please don't stop making such great videos. I will certainly contribute to your Patreon account once I start a full-time job.
@buddhasarchive8385
@buddhasarchive8385 3 роки тому
thank you very much for making these great videos
@osadniasod223
@osadniasod223 3 роки тому
Cherno you saved my life with this video (again) thx for the great tutorial
@evangcharles
@evangcharles 4 роки тому
I used them in ue4 as a game audio programmer and found them to be tricky to work with. The engine instantiates the Singleton as expected but tweaks to the Singleton data doesn't show until the entire engine is rerun. That makes iterating on designs a lengthy trial. Otherwise it's a handy way to get your world actors to survive between map transitions.
@dnd3347
@dnd3347 4 роки тому
Thanks for creating such informative videos. If possible please also tell us an efficient way to create singleton class with arguments and correct way to incorporate smart pointers in it.
@ShivamJha00
@ShivamJha00 4 роки тому
Very very informational. Thank you
@AM-qx3bq
@AM-qx3bq 4 роки тому
YES. EDUCATIONAL C++. MORE OF THIS PLEASE.
@favouronu
@favouronu 4 роки тому
OMG, You're even married, Lol, Its been 7 years man, since I followed your channel and waited for you to release more videos, UKposts recommendations have brought us back together lol.
@morph611
@morph611 4 роки тому
The Cherno ain't no singleton
@favouronu
@favouronu 4 роки тому
@@morph611 Lol
@nobir98
@nobir98 4 роки тому
Hahaha lol I've noticed that too his married that's for sure 😄
@patrickwildschut5750
@patrickwildschut5750 4 роки тому
Great video, loved it
@tolkienfan1972
@tolkienfan1972 Рік тому
Note: function local static variables (depending on implementation) can have guards for thread safety, which make accesses take longer. This can be particularly problematic when it's a pointer because of the dependency stall.
@debkr
@debkr Рік тому
The indirection is a great idea. I have never thought of it like this 👍
@mehuldevganiya1049
@mehuldevganiya1049 3 роки тому
Best learning. Please make such videos on as much Design patterns as possible to implement in C++. Awaiting
@VictorOrdu
@VictorOrdu 4 роки тому
Another great video. Thanks!
@buddhasarchive8385
@buddhasarchive8385 3 роки тому
yes. please make more such videos
@CreativeSteve69
@CreativeSteve69 4 роки тому
hey Chemo been following ya since I got a interest on game devolopment past 5 years. recently been doing turotials on learning gamedev with c++ n defently looking forward to more content to advance my learning. :)
@sudheerinbloom
@sudheerinbloom 3 роки тому
Superb, Superb , Superb.. Nicely explained..
@federicoalbesa3748
@federicoalbesa3748 2 роки тому
The very best video i'd seen. 🤯 Thanks for all
@alvaroir
@alvaroir 4 роки тому
You are the real MVP man 💪🏻
@EmbeddedSorcery
@EmbeddedSorcery 4 роки тому
So I'm kind of learning the business at work, being introduced to embedded programming (from being a tech previously), and we commonly use classes for single instance objects... because it's embedded code on an MCU and there's no reason to have more of something like a Hardware class. The hardware class usually initializes a microcontroller and stuff. We do something like this to override the new operator: template T* static_allocate( void ) { static type Object[ (sizeof( T ) + sizeof( type ) - 1U ) / sizeof( type ) ]; return reinterpret_cast( &Object[ 0U ] ); }; Then a class can be instantiated statically in memory with "new Hardware;" which will have a bunch of init functions in the constructor. Hardware( void ); virtual ~Hardware( void ) { } void* operator new( size_t ) { return static_allocate ( ); } void operator delete( void * ) { } I'd be really curious to see what your thoughts are on something like this. Is there any point in doing this and not using a namespace? Functions are called in the application layer sometimes from the Hardware class, but it's really just a global instance this way... something like " Hardware::uart_print("Hello"); "
@austinfritzke9305
@austinfritzke9305 3 роки тому
Best C++ tutorials on the internet. Hostinger better be giving you some good money.
@ramijaziri8734
@ramijaziri8734 2 роки тому
Thanks for your great videos, can you please make a tutorial about DESIGN PATTERNS
@abdullahhejazi
@abdullahhejazi 2 роки тому
Great vid, One of my use cases for Singlton in real life is database connection, for every request you get, it's better to establish 1 connection to the database, and use it throughout the code, instead of re-establishing connection for every query which will slow down your app.
@tomhyhlik1788
@tomhyhlik1788 4 роки тому
Very well explained, do more design pattern videos please
@lorandattilaszasz359
@lorandattilaszasz359 3 роки тому
Thank you very much, you helped me a lot 😉😊
@jonasvervoort1399
@jonasvervoort1399 3 роки тому
Hi Cherno, Again a super nice video! You asked if there is interest in other patterns. I wonder what your opinion is about creating interface style (abstract) classes in combination with inversion of control in C++. I'm a big fan of unit testing and use this interface style programming (common in for example C#) to be able to mock out functionalities. I'm interested in your experience on this topic.
@astaghfirullahalzimastaghf3648
@astaghfirullahalzimastaghf3648 Рік тому
1. create a private object inside a class..(mark it as static -> meaning that object is specific to an object //not shared with other objects) 2. mark constructor as private 3. make a public function to access that private object(return type is pass by reference because to refer an object that already being created not making a copy of it)
@astaghfirullahalzimastaghf3648
@astaghfirullahalzimastaghf3648 Рік тому
even though we declared constructor as private, there are still a default public copy constructor created by the compiler..so need to delete that too
@astaghfirullahalzimastaghf3648
@astaghfirullahalzimastaghf3648 Рік тому
@12:55 can be assigned to a another reference object/variable like so auto& reference=Random::Get().Float();
@dandonahue1403
@dandonahue1403 4 роки тому
FWIW, Singeltons are used quite a bit in embedded designs to control access to hardware.
@learningbees9499
@learningbees9499 2 роки тому
Hey, Nice content. Could you please cover all other design patterns as well
@jnwms
@jnwms 2 роки тому
Although useful for begginers Singletons are an anti-pattern and end up coupling your code and make it difficult to test. Try creating an IoC (inversion of control), which is basically an object you inject into a constructor that has single references to you global objects. A framework that uses reflection to do this is super useful.
@miko007
@miko007 Рік тому
this. global state is just bad.
@telnobynoyator_6183
@telnobynoyator_6183 2 роки тому
I think a big advantage of singletons is that you can put init code in the constructor and not worry about calling it manually. Advantage or disadvantage, depending on if the init code relies on some other singleton that may or may not have been initialized
@fixpontt
@fixpontt 4 роки тому
this is called Meyer's singleton and after c++11 it is thread safe too, but has an overhead cost of the Get functuion because of the internal locking mechanism
@rblackmore1445
@rblackmore1445 4 роки тому
everything with locking has overhead
@fixpontt
@fixpontt 4 роки тому
@@rblackmore1445 yeah but it is not obvious that there is a locking in this code and it was not before c++11, it was added to the standard later, as Meyers states: - Static function objects are initialized when control flow hits the function for the first time. - The lifetime of function static variables begins the first time the program flow encounters the declaration and ends at program termination. - If control enters the declaration concurrently while the variable is being initialized, the concurrent execution shall wait for completion of the initialization.
@jimfcarroll
@jimfcarroll 4 роки тому
@@rblackmore1445 With the right memory model (which C++ didn't have as part of the language spec pre-C++11 though may now, I'm not sure), you can construct a safe "double checked" locking scheme that really doesn't suffer much.
@ultimatesoup
@ultimatesoup 7 місяців тому
In general singletons have some overhead for the function calls and initialization when you need to access. In addition, it's hard to reason about initialization and shutdown order so I completely avoid them in my engine. Instead I have a class that contains static instances of all the engine components. I can explicitly control startup and shutdown this way. It's not perfect though as c++ guarantees initialization before access in multithreaded environments, however, I've found that even with this performance cost, it's about 50% faster than using singletons
@anuragparothia7996
@anuragparothia7996 3 роки тому
This is the best C++ playlist on UKposts, Hope i know it earlier, but i think some topics are missing.
@stke1982
@stke1982 2 роки тому
You forgot to mention the most important thing. It's a antipattern and should not be used except few rare exceptions. It adds hidden dependencies into the whole codebase, makes unit testing harder and causes lots of pain and costs few years later.
@xFlRSTx
@xFlRSTx 2 роки тому
sometimes it can make unit testing easier, because you can make your singleton inherit an interface and then use a mock instance for testing other stuff rather than the real singleton, actually anytime you want an essentially static module but you need it to inherit something then you basically need to make a singleton, i think thats the only time i can think of where it would be useful.
@notanenglishperson9865
@notanenglishperson9865 2 роки тому
Your fast typing is so satisfying
@stefanhedman
@stefanhedman 3 роки тому
Good video! Only thing I missed is the downsides of the singleton pattern. For example, they are pretty much untestable in unit tests. And then there is threading issues. Also, the initialization order fiasco. In my opinion, this pattern has so many issues and too few benefits to balance it out.
@adamjcasey
@adamjcasey Рік тому
Well designed singletons are very testable! What do you mean?
@miko007
@miko007 Рік тому
@@adamjcasey how do you test a function that make use of your singleton in an environment where your singleton is not present? say you have that classical database singleton. while unit testing, you most likely want to swap your database connection with some sort of mock, which would be pretty easy with dependency injection, but is impossible with a singleton. a singleton is global state. global state is evil. it is untestable in unit tests.
@whythosenames
@whythosenames 4 роки тому
I use singletons just if you must be able to reinit the object, for example restarting a server etc. Then you can just reassign the object and don't have to worry about those variables
@glee21012
@glee21012 4 роки тому
I make the pointer static and initialize that to NULL. The get_instance method checks the static pointer for NULL and will instantiate it if NULL, so one instance.
@vitkh3897
@vitkh3897 4 роки тому
Yes! Amazing video,please do more of those on design patterns,id also enjoy some videos about multi-threading. great videos man!
@aksalive
@aksalive 8 місяців тому
More videos on c++ design patterns please.
@ynny7885
@ynny7885 2 роки тому
Well explained thank you :)
@Flinsch77
@Flinsch77 Рік тому
What I missed in your video is the ability to control when the singleton instance is deleted again. This can be important, for example, when analyzing memory leaks. Without explicit control, the singleton instance is only deleted "too late", so that it is always detected as memory leak (provided that the singleton instance allocates dynamic memory, which of course is rather irrelevant for the random number generator from your example).
@ChedwinX
@ChedwinX 4 роки тому
The C++ series is back! Hell yeah!
@Yoyoyo_gamer
@Yoyoyo_gamer 3 роки тому
I use Singletons at work, and I learned something. Deleting the copy constructor. When I researched this topic I had not seen this part before. You did not touch on the part of deleting the actual singleton, Im not sure if its actually an important thing to look into when using Singletons, but I have heard there is a particular way to actually delete the singleton in order to evade memory leaks?,
@TheNovakon
@TheNovakon Рік тому
Singleton as class allows "optional singletons", so I can have singleton, but i can benefit to able create a new standalone instance for some special purpose. Singletons as class can also extend some interface. Putting instance to static variable outside of function Get is slightly faster, then having it inside of the function Get because every-time the Get() it called, it must ask, whether the instance is already initialized. There is also some locking protocol to ensure MT safety. This doesn't applied to outside variable. However there is also benefit to having the static variable inside of the function. If the singleton is never used, it is also never initialized, which can help with performance in the such case.
@maheshhegde7332
@maheshhegde7332 3 роки тому
Please add seperate playlist and videos exclusively explaining design patterns in depth
@stdDizzasTeR
@stdDizzasTeR 4 роки тому
Finally more C++
@connorking9217
@connorking9217 4 роки тому
More design patterns would be great!
@rahmanmd8460
@rahmanmd8460 3 роки тому
Thank you buddy it really helped me. Btw your english is quite understandable to me love from 🇮🇳
@pawelpow
@pawelpow 3 роки тому
I just made a tic tac toe c++ game and my main downside was that I had to call “TicTacToe main;” at the beginning of the file. I went on UKposts and this is the first thing I saw! Thanks man!
@pawelpow
@pawelpow 3 роки тому
I made it using Object oriented programming by the way, hence the reason why I had to declare the instance
@srivallabhavaidya2991
@srivallabhavaidya2991 5 місяців тому
Hey TheCherno, have you given a thought on doing more videos on design pattern ? that would be of great help. Great content of C++ available.
@JamesStocks
@JamesStocks 4 роки тому
At the start of the video I was unsure why not to just use a class - contributors to the code should understand that it's a singleton and shouldn't be instantiated more than once. But at the end of the video I saw how nice the calling code inside main() is :)
@wasit-shafi
@wasit-shafi 4 роки тому
osom...happy to c u back
@standriggs2420
@standriggs2420 3 місяці тому
It would be nice to follow up this with a comparison to the Monostate design pattern.
@lokiandere2518
@lokiandere2518 3 роки тому
Thank you! More design pattern please.
@Tairun1st
@Tairun1st 2 роки тому
Thanks for the video 🤩Question: How would I implement it if the Singleton was a derived class? Would i need to delete the constructor of the base class as well, or wouldn't that matter?
@warzonemoments3970
@warzonemoments3970 8 місяців тому
Could you return a pointer to a class too? Or does it have to be a reference?
@Brahvim
@Brahvim 2 роки тому
GOODNESS ME, 14:09! That is a lot of speed! Edited? Typed? I can't figure out! Haha.
@alltheway99
@alltheway99 4 роки тому
Looking forward to 2020 videos, Any plans for c++17, c++14,... 🙂
Small String Optimization in C++
13:14
The Cherno
Переглядів 69 тис.
Teenagers Show Kindness by Repairing Grandmother's Old Fence #shorts
00:37
Fabiosa Best Lifehacks
Переглядів 34 млн
Get a knife! | Standoff 2
01:06
Standoff 2 Live
Переглядів 1,5 млн
Function Pointers in C++
12:41
The Cherno
Переглядів 376 тис.
lvalues and rvalues in C++
14:13
The Cherno
Переглядів 297 тис.
Singleton Design Pattern with thread safety in C++
14:08
E-GRASP
Переглядів 6 тис.
10 Design Patterns Explained in 10 Minutes
11:04
Fireship
Переглядів 2,1 млн
Singleton Design Pattern in C# - Do it THAT way
13:15
tutorialsEU - C#
Переглядів 20 тис.
Casting in C++
13:25
The Cherno
Переглядів 178 тис.
I Rewrote This Entire Main File // Code Review
16:08
The Cherno
Переглядів 86 тис.
Factory Design Pattern - Why and How with Code!!
15:35
Keerti Purswani
Переглядів 72 тис.