Co oznaczaja operatory new/delete dla klasy

0

Czy ktoś może mi wytłumaczyć co taki zapis klasy oznacza i jak ją wykorzystywać:

class GdiplusBase
{
public:
    void (operator delete)(void* in_pVoid)
    {
       DllExports::GdipFree(in_pVoid);
    }
    void* (operator new)(size_t in_size)
    {
       return DllExports::GdipAlloc(in_size);
    }
    void (operator delete[])(void* in_pVoid)
    {
       DllExports::GdipFree(in_pVoid);
    }
    void* (operator new[])(size_t in_size)
    {
       return DllExports::GdipAlloc(in_size);
    }
};

// zmieniłem ci temat [mf]

0

taki zapis oznacza, że klasa używa swoich wersji operatorów new i delete, czyli ustala, jak jej przydzielać pamięć. Standardowo new i delete rezerwuje pamięć za pomocą malloc i free najczęściej. w/w klasa rezerwuje za pomocą jakowychś innych funkcji zapisanych w jakimś dll'u, z tego, co widać po nazwie.

Jak takiej klasy używać? Normalnie. Tak jak każdej innej. Tworzenie i niszczenie wygląda z punktu widzenia użytkownika niczym się nie różni.

0

Dzięki znów mi pomogliście. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0