Datakent Ana Sayfa
Anasayfa Anasayfa > Diğer bölümler > C, C++, Visual C++
  Aktif Konular Aktif Konular RSS: C++ Smart Pointer
  Yardım Yardım  Hızlı Ara   Kayıt Ol Kayıt Ol  Giriş Giriş

C++ Smart Pointer

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
murat turan Açılır Menü Göster
Admin Group
Admin Group
Simge
Datakent

Kayıt Tarihi: 01.Ekim.2003
Bulundugu Yer: Turkey
Online: Sitede Değil
Gönderilenler: 1798
  Alıntı murat turan Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: C++ Smart Pointer
    Gönderim Zamanı: 07.Aralik.2017 Saat 21:54
Klasik C++ pointer tanımlama ve yok etme (silme)
void FuncMightLeak()
{
    MyType* pFirst = new MyType();

    if (!process())
    {
        delete pFirst;
        return;
    }

    MyType* pSecond = new MyType();

    if (!processSecond())
    {
        delete pFirst;
        delete pSecond;
        return;
    }

    process();
    delete pFirst;
    delete pSecond;
}


Yeni nesil C++ derleyiciler (c++ 17 >=) smart pointer ile tanımlamayı daha basitleştirdiği gibi silme işlemleriylede ilgili kod bloklarını ortadan kaldırıyor zira return (kod bitişi sonrası) pointer değişkenler otomatik olarak kaldırılıyor.
void FuncNoLeaks()
{
    auto pFirst = std::make_unique<MyType>();

    if (!process())
        return;

    auto pSecond = std::make_unique<MyType>();

    if (!processSecond())
        return;

    process();
}

Smart pointer: std::make_unique, std::make_shared, std::unique_ptr, std::shared_ptr
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Menü Göster



Bu Sayfa 0,203 Saniyede Yüklendi. [power by : WebWiz]