SORU
12 ŞUBAT 2010, Cuma


Üye yapıcı ve yıkıcı çağrıları sipariş

Oh C guruları, thy hikmet arıyorum. Bana standardese konuş ve eğer C aşağıdaki program garanti ise söyle:

#include <iostream>
using namespace std;

struct A
{
    A() { cout << "A::A" << endl; }
    ~A() { cout << "A::~" << endl; }
};

struct B
{
    B() { cout << "B::B" << endl; }
    ~B() { cout << "B::~" << endl; }
};

struct C
{
    C() { cout << "C::C" << endl; }
    ~C() { cout << "C::~" << endl; }
};

struct Aggregate
{
    A a;
    B b;
    C c;
};

int main()
{
    Aggregate a;
    return 0;
}

her zaman üretecektir

A::A
B::B
C::C
C::~
B::~
A::~

Diğer bir deyişle, üye bildirimi emriyle başlatılan ve ters sırada tahrip olduğu garanti edilir?

CEVAP
12 ŞUBAT 2010, Cuma


Diğer bir deyişle, üye bildirimi emriyle başlatılan ve ters sırada tahrip olduğu garanti edilir?

İkisine de Evet. 12.6.2 bakın

6Başlatma devam eder sipariş takip:

  • İlk ve tek için en türetilmiş kurucu aşağıda açıklandığı gibi sınıf, sanal temel sınıflar başlatıldı olacaktır göründükleri amacıyla bir derinlik ilk soldan sağa geçişi olan temel döngüsel graph yönlendirilmiş sınıflar “Sol-Sağ”, nerede temel sınıf görünüm düzeni türetilmiş sınıf adları temel-belirleyici-listesi.

  • Sonra, doğrudan temel sınıflar başlatılmış olacaktır göründükleri gibi beyan sırada -belirtici-listesi base (ne olursa olsun mem-başlatıcılar) sırası.

  • Sonra, statik olmayan veri üyeleri olacaktır sırada başlatıldı ilan sınıfı tanımı (tekrar sırası ne olursa olsun mem-başlatıcılar).

  • Son olarak, kurucu bileşik deyim vücut yürütülür. [ Not: bildirimi sipariş için zorunlu. Garanti Bankası ve üye subobjects ters sırada yok başlatma. —son not ]

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
C++

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Breno Rises

    Breno Rises

    7 Ocak 2014
  • Mega64

    Mega64

    24 ŞUBAT 2006
  • TecNoob

    TecNoob

    15 AĞUSTOS 2013