오 C ++ 전문가, 당신의 지혜를 구합니다. 나에게 표준을 말하고 C ++가 다음 프로그램을 보장하는지 알려주십시오.
#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;
}
항상 생산할 것입니다
A::A
B::B
C::C
C::~
B::~
A::~
즉, 멤버는 선언 순서에 따라 초기화되고 역순으로 소멸되는 것이 보장됩니까?