Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah pembina ahli dan pemusnah dipanggil dalam warisan dan pengagregatan C?

Bagaimanakah pembina ahli dan pemusnah dipanggil dalam warisan dan pengagregatan C?

Barbara Streisand
Lepaskan: 2024-11-08 08:02:01
asal
243 orang telah melayarinya

How are member constructors and destructors called in C   inheritance and aggregation?

Tertib Panggilan Pembina dan Pemusnah Ahli

Dalam C , susunan pembina ahli dan panggilan pemusnah ialah aspek asas pemulaan objek dan kemusnahan. Ia memastikan permulaan dan pembersihan ahli kelas yang betul, terutamanya dalam situasi yang melibatkan pewarisan dan pengagregatan.

Pertimbangkan program 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;
}
Salin selepas log masuk

Apabila dilaksanakan, program ini menghasilkan output berikut:

A::A
B::B
C::C
C::~
B::~
A::~
Salin selepas log masuk

Output ini menunjukkan bahawa pembina ahli dipanggil mengikut susunan pengisytiharan, dan pemusnah ahli dipanggil dalam susunan terbalik pengisytiharan.

Piawaian C menjamin pesanan ini di bawah syarat berikut:

  1. Perintah Permulaan: Kelas asas langsung dan ahli data bukan statik dimulakan mengikut susunan yang muncul dalam definisi kelas.
  2. Kemusnahan Tertib: Pemusnah untuk kelas terbitan dan asas dipanggil dalam tertib terbalik tertib permulaan.

Dalam contoh ini, kelas Agregat mengandungi ahli a jenis A, b jenis B, dan c jenis C. Apabila pembina Agregat dipanggil, ahli dimulakan dalam susunan a, b, dan c. Sejajar dengan itu, apabila pemusnah Agregat dipanggil, ahli dimusnahkan dalam susunan terbalik, c, b, dan a.

Memahami susunan pembina ahli dan panggilan pemusnah adalah penting untuk pengurusan seumur hidup objek yang betul dalam C , terutamanya apabila bekerja dengan warisan dan struktur kelas yang kompleks.

Atas ialah kandungan terperinci Bagaimanakah pembina ahli dan pemusnah dipanggil dalam warisan dan pengagregatan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan