Pembina dan Malloc
Tidak seperti ungkapan baharu dan padam, std::malloc tidak memanggil pembina apabila memperuntukkan memori untuk objek. Oleh itu, untuk mencipta objek sambil turut memanggil pembinanya, pendekatan alternatif diperlukan.
Penyelesaian Kemungkinan:
1. Menggunakan baharu:
Ini ialah penggunaan utama yang dimaksudkan, kerana baharu secara eksplisit mencipta objek dan seterusnya memanggil pembinanya.
Contoh:
<code class="cpp">A* a = new A(); delete a;</code>
2. Invokasi Pembina Eksplisit (Placement Baharu):
Kaedah ini melibatkan pengagihan memori menggunakan malloc dan kemudian memanggil pembina secara manual menggunakan sintaks baharu peletakan.
Contoh:
<code class="cpp">A* a = (A*)malloc(sizeof(A)); new (a) A(); a->~A(); free(a);</code>
Adalah penting untuk ambil perhatian bahawa penempatan baharu memerlukan penggunaan lebihan pembina yang betul dan harus digunakan dengan berhati-hati. Umumnya, baharu harus digunakan untuk penciptaan objek, manakala peletakan baharu sesuai untuk senario tertentu di mana pengurusan memori dikendalikan secara manual.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Objek dan Menjemput Pembina Tanpa Menggunakan `baru` dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!