Bilakah Anda Memerlukan Kata Kunci baharu dalam C ?
Dalam C , anda mempunyai dua pilihan untuk mencipta objek: menggunakan kata kunci baharu atau bukan.
Menggunakan baharu
MyClass* myClass = new MyClass();
myClass->MyField = "Hello world!";
Salin selepas log masuk
- Memperuntukkan memori untuk objek pada timbunan (simpan percuma).
- Memerlukan pemadaman eksplisit untuk membebaskan memori yang diperuntukkan.
- Memori kekal diperuntukkan sehingga dipadamkan, walaupun objek hilang skop.
Tidak Menggunakan baharu
MyClass myClass;
myClass.MyField = "Hello world!";
Salin selepas log masuk
- Memperuntukkan memori untuk objek pada tindanan.
- Tiada pemadaman eksplisit diperlukan.
- Memori dibebaskan secara automatik apabila objek keluar skop.
Pertimbangan Pilihan
Kaedah yang manakah untuk digunakan bergantung pada keperluan khusus anda:
-
Gunakan baharu:
- Untuk mencipta objek pada timbunan.
- Untuk mengembalikan penunjuk kepada objek daripada fungsi.
-
Jangan gunakan baharu:
- Untuk mengelakkan pengurusan memori secara manual dan kemungkinan kebocoran memori.
- Untuk mencipta objek yang tidak akan meninggalkan arus skop.
Nota Tambahan
- Menggunakan baharu memerlukan penggunaan padam untuk membebaskan memori yang diperuntukkan. Ini adalah untuk mengelakkan kebocoran memori.
- baharu biasanya digunakan untuk mencipta objek pada timbunan, manakala tidak menggunakan baharu biasanya digunakan untuk objek yang diperuntukkan tindanan.
- Timbunan mempunyai kapasiti memori yang kurang daripada timbunan, jadi memperuntukkan terlalu banyak objek pada tindanan boleh menyebabkan limpahan tindanan.
Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan Kata Kunci `baru` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!