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

  • BigBoyTV

    BigBoyTV

    25 EYLÜL 2013
  • BlackBoxTV

    BlackBoxTV

    7 Mayıs 2007
  • LevelUpTuts

    LevelUpTuts

    20 Ocak 2012