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

  • Ama Jenna

    Ama Jenna

    29 NİSAN 2011
  • Associated Press

    Associated P

    18 EYLÜL 2006
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006