Тёмный

Back to Basics: Object-Oriented Programming in C++ - Amir Kirsh - CppCon 2022 

CppCon
Подписаться 153 тыс.
Просмотров 14 тыс.
50% 1

Опубликовано:

 

5 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 20   
@alidanish6303
@alidanish6303 Год назад
Marvelous job done by Amir, In inheritance he is explaining a subtle concept of keeping OO performant, especially with state pattern. I am already thanking him for real thought behind state pattern.
@Nikage23
@Nikage23 10 месяцев назад
For quite a long time I thought of a state pattern as something that is quite verbose and to be used in "complex" frameworks and/or libraries whatever. But now it makes so much more sense to me to use it my daily code.
@Nikage23
@Nikage23 10 месяцев назад
One of the best OO talks/resources I've ever seen so far. Simple yet powerful in some sense. Absolute gem.
@rinket7779
@rinket7779 9 месяцев назад
Really? I'm half way in and it's nothing to do with Oop, just general cpp knowledge about construction and destruction.
@TheJackal917
@TheJackal917 Год назад
Is this for begginers or uberadvanced stuff for no less than phds?
@flocela
@flocela Год назад
That was a damn good talk.
@zxuiji
@zxuiji Год назад
12:00, Wouldn't it better if the compiler just assumes initialisation to 0 is fine unless it finds a matching constructor for what is presented to it, for instance: class X { char const* m_say; public: X( char const*say ) { m_say = say; } char const* talk() { return m_say; } }; ... X a = X("Hello world!"), b = X(); puts( a.talk() ); puts( b.talk() ? b.talk() : "(null)" ); Would produce: Hello world! (null) While this: class X { char const* m_say; public: X() { m_say = "Goodbye :)"; } X( char const* say ) { m_say = say; } char const* talk() { return m_say; } }; ... X a = X("Hello world!"), b = X(); puts( a.talk() ); puts( b.talk() ? b.talk() : "(null)" ); Would produce: Hello world! Goodbye :)
@timog7358
@timog7358 3 месяца назад
brilliant
@mertsezqin19
@mertsezqin19 Год назад
Excellent video.
@zxuiji
@zxuiji Год назад
54:55, Alternative more reliable solution: class Pet { ... Pet( PetType &type ) { ... } operator= ( PetType &type ) { ... } ... } If they make the mistake of using the pet type as a pet the managing class should just accept it and construct itself with empty data or override an existing type
@zeez7777
@zeez7777 5 месяцев назад
24:39 Why would i want to lock a mutex in a method that is const? Wouldn't that be a read only operation by default which does not need synchronization?
@timog7358
@timog7358 3 месяца назад
you dont want the value to change while you are reading it
@eddyecko94
@eddyecko94 Год назад
I’m I able to access these slides? He has a reference concerning “padding” at 7:20 which I’ll like to read more about
@amirkirsh8556
@amirkirsh8556 Год назад
Here it is: docs.google.com/presentation/d/1t7dhyXHfFfNEEiUSC6rhznyKXkThcLQhlQJdv57M7mI/edit?usp=sharing
@zxuiji
@zxuiji Год назад
32:25, if you're bringing culture into it then in japan cats would go nya, not meow
@amirkirsh8556
@amirkirsh8556 Год назад
Thank you, noted
@zxuiji
@zxuiji Год назад
37:00, bad example as all squares are rectangles but not all rectangles are squares which means square would inherit from rectangle
@MalcolmParsons
@MalcolmParsons Год назад
No mention of class invariants. Does not mention that members should be public if there are no invariants. Has a Point class with private members, even though there are no invariants.
@kevinzebb
@kevinzebb Год назад
Guy speaks too fast, that thick accent doesn’t help either.
@nin3se
@nin3se Год назад
I had no problems listening to him at x1.5 speed
Далее
C++ Lambda Idioms - Timur Doumler - CppCon 2022
1:04:45