Design Patterns - Factory Method Pattern Adding More Power to Count Allocated Objects in C++

Поділитися
Вставка
  • Опубліковано 17 гру 2024

КОМЕНТАРІ • 15

  • @heyheyheyhoev419
    @heyheyheyhoev419 Рік тому

    Hi, Mike!
    Awesome tut, I have one question: on 3:23 you created copy-constructor in private section of "factory" class, but what is the difference with explicit restriction on copy constructor on next line:
    FactoryGameObjects(const& FactoryGameObjects o) = delete;

    • @MikeShah
      @MikeShah  Рік тому +1

      Effectively the same idea -- one is the pre c++11 way of avoiding copies, and 'delete' is the C++11 and beyond way of doing things.

    • @heyheyheyhoev419
      @heyheyheyhoev419 Рік тому

      I spotted your case in one of SDL examples(file or asset handler maybe) , so this question appeared in my mind.

    • @MikeShah
      @MikeShah  Рік тому

      @@heyheyheyhoev419 Ah great! :)

  • @1981Praveer
    @1981Praveer 11 місяців тому +1

    @9:35 can't we delete by overloading the delete operator? something like:
    void operator delete(void* memory){ free(memory);}

    • @MikeShah
      @MikeShah  11 місяців тому

      Could certainly do something like that to track allocations.

  • @georgiosdoumas2446
    @georgiosdoumas2446 4 місяці тому +1

    11:34 , I think that destructor should not have any parameter list!

    • @MikeShah
      @MikeShah  4 місяці тому

      Indeed -- copy & paste error without actually testing (just in the 'discussion' or 'sketch' portion of the video). I'd need to think a bit about a use case for a parameter in a destructor -- perhaps for control flow on how you'd like to perform deletion for instance -- but the mechanism may not work as well as 'defer' or 'scope(exit)' in other languages.

  • @Maximus98245
    @Maximus98245 6 місяців тому +1

    Hi Mike, great video! Could we have not used the reference count of the shared pointers to tell us how many active objects there are? Or maybe the reference count of the weak ptr associated with the shared ptr ? Thanks!
    auto ptr1 = std::make_shared(10);
    {
    auto ptr2 = ptr1;
    std::cout

    • @MikeShah
      @MikeShah  6 місяців тому

      We can utilize use_count to tell how many times the pointer is referenced in a single-threaded environment (keep in mind, multithreading will otherwise not make this or 'expired' reliable)

  • @wojciechgrunwald80
    @wojciechgrunwald80 Рік тому

    can you explain how to further code the fragment with adapter?

    • @MikeShah
      @MikeShah  Рік тому

      At some point I'll cover some other patterns like adapter in this series.

  • @dwolrdcojp
    @dwolrdcojp 2 роки тому

    Is the wrapper the best approach for this problem? Could you store them in a container that gets created with the constructer and push back the shared_ptr when the CreateObject function is called? Then you could use the size function from that container?

    • @MikeShah
      @MikeShah  2 роки тому

      Could also use a container to count the number of objects created. I think I would improve the above by using an atomic to keep count at the least.