Malloc dan Pembina: Panduan Penerokaan
Dalam bidang peruntukan memori, perpustakaan standard menyediakan kedua-dua std::malloc dan ungkapan baharu . Walaupun baru dengan mudah memulakan objek melalui pembina, std::malloc tidak. Ini menimbulkan persoalan: bagaimanakah kita boleh mencipta objek dan memastikan penggunaan pembinanya apabila menggunakan std::malloc?
Satu pendekatan mudah ialah dengan hanya menggunakan ungkapan baharu, kerana ia memenuhi tujuan yang dimaksudkan. Walau bagaimanapun, jika anda lebih suka menggunakan std::malloc, terdapat kaedah alternatif: memanggil pembina secara eksplisit menggunakan teknik yang dikenali sebagai "peletakan baharu."
Menggunakan Peletakan Baharu
Peletakan baharu membolehkan kami mencipta objek secara eksplisit pada lokasi memori yang kami tetapkan. Untuk mencapai ini:
Sintaks untuk peletakan baharu kelihatan seperti ini:
<code class="c++">pointer = (type*)malloc(sizeof(type)); new (pointer) type();</code>
Selepas mencipta objek, jangan lupa untuk memusnahkannya menggunakan sintaks ~type() eksplisit dan kosongkan memori dengan percuma.
Berikut ialah coretan kod yang menunjukkan peletakan baharu:
<code class="c++">A* a = (A*)malloc(sizeof(A)); new (a) A(); a->~A(); free(a);</code>
Dengan menggunakan peletakan baharu, anda boleh mencipta objek dengan std::malloc sambil masih menggunakan pembina.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membina Objek Menggunakan `std::malloc`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!