Yığın gevşemek nedir? | Netgez.com
SORU
25 ÅžUBAT 2010, PERÅžEMBE


Yığın gevşemek nedir?

Yığın gevşemek nedir? Aradım ama aydınlatıcı bir cevap! bulamadım

CEVAP
25 ÅžUBAT 2010, PERÅžEMBE


Yığın gevşemek genellikle özel durum işleme ile bağlantılı olarak bahsetti. İşte size bir örnek:

void func( int x )
{
    char* pleak = new char[1024]; // might be lost => memory leak
    std::string s( "hello world" ); // will be properly destructed

    if ( x ) throw std::runtime_error( "boom" );

    delete [] pleak; // will only get here if x == 0. if x!=0, throw exception
}

int main()
{
    try
    {
        func( 10 );
    }
    catch ( const std::exception& e )
    {
        return 1;
    }

    return 0;
}

Burada Bellek pleak için ayrılmış özel hafıza s tahsis düzgün herhangi bir durumda std::string yıkıcı tarafından piyasaya sürülecek sırasında atılan ise kaybolur. Nesneleri yığında ayrılmış "" kapsamında çıkıldığı zaman (burada kapsam fonksiyonu func.) çözülmemiş vardır Bu derleyici (yığın) otomatik değişken yıkıcı çağrıları eklenerek yapılır.

Şimdi bu çok güçlü bir kavram tekniği RAII denilen yol açıyorKaynak Toplama Başlatmabizim bellek , veritabanı bağlantıları, açık dosya tanıtıcı, vb gibi kaynakları yönetmek yardımcı olur. C .

Åžimdi exception safety guarantees bize izin verir.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • discokatze

    discokatze

    23 EYLÜL 2009
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011
  • Valdorsha

    Valdorsha

    8 Mayıs 2006