Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah piawaian C menjamin susunan pembina ahli dan panggilan pemusnah dalam kelas dengan pembolehubah ahli kelas lain?
Masalah:
Dalam C , apabila kelas mengandungi pembolehubah ahli yang lain kelas, susunan permulaan dan pemusnahannya adalah penting. Pertimbangkan program berikut:
#include <iostream> using namespace std; struct A { A() { cout <p>Di bawah piawaian C, adakah program ini dijamin sentiasa menghasilkan output berikut:</p> <pre class="brush:php;toolbar:false">A::A B::B C::C C::~ B::~ A::~
Jawapan:
Ya, ia dijamin.
Menurut seksyen 12.6.2 standard C, permulaan dan pemusnahan ahli dalam kelas mengikut peraturan tertentu:
Dalam contoh yang disediakan, ahli struct Agregat diisytiharkan dalam susunan a, b dan c. Oleh itu, ia dijamin bahawa ia akan dimulakan dalam susunan A::A, B::B, dan C::C dan dimusnahkan dalam susunan terbalik C::~, B::~, dan A::~.
Atas ialah kandungan terperinci Bagaimanakah piawaian C menjamin susunan pembina ahli dan panggilan pemusnah dalam kelas dengan pembolehubah ahli kelas lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!