Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah susunan permulaan dan pemusnahan objek ahli dalam agregat C ditentukan?
Arahan Permulaan dan Pemusnahan Ahli dalam C
Dalam C , susunan objek ahli dimulakan dan dimusnahkan adalah penting untuk memahami tingkah laku struktur data yang kompleks. Mari kita pertimbangkan atur cara berikut:
#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; }
Atur cara ini mencipta contoh struct agregat yang mengandungi tiga struct lain, A, B dan C. Apabila kita melaksanakan program ini, output berikut dihasilkan:
A::A B::B C::C C::~ B::~ A::~
Keluaran ini menimbulkan persoalan: adakah susunan pembinaan dan pemusnahan ini dijamin oleh C standard?
Jawapannya ya. Mengikut piawaian C (12.6.2), ahli struktur agregat dimulakan dan dimusnahkan dalam susunan berikut:
Perintah Permulaan:
Kemusnahan Tertib:
Oleh itu, untuk program yang diberikan, susunan pembinaan dan pemusnahan ahli adalah dijamin:
Ini menjamin tingkah laku yang konsisten apabila mencipta dan memusnahkan struktur data yang kompleks dalam C .
Atas ialah kandungan terperinci Bagaimanakah susunan permulaan dan pemusnahan objek ahli dalam agregat C ditentukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!