Bila Menggunakan "baharu" dalam C ?
Sebagai pembangun yang beralih daripada C#/Java, memahami instantiasi objek dalam C boleh membingungkan . Artikel ini menjelaskan masa untuk menggunakan pengendali "baharu" dan bila untuk mengelak daripadanya.
Menggunakan "baharu": Menghasilkan Panjang Umur Objek
Gunakan "baharu" apabila anda mahu objek berterusan sehingga ia dipadamkan secara eksplisit. Tanpa "baru," objek akan dimusnahkan sebaik sahaja ia terkeluar dari skop. Pertimbangkan contoh berikut:
void foo() { Point p = Point(0,0); // p is destroyed here } for (...) { Point p = Point(0,0); // p is destroyed after each iteration }
Menggunakan "baharu" untuk Tatasusunan
Tatasusunan dalam C diperuntukkan di tempat (iaitu, pada tindanan). Walau bagaimanapun, jika anda perlu mencipta tatasusunan dengan saiz yang ditentukan semasa masa jalan, anda mesti memperuntukkannya menggunakan "baharu."
void foo(int size) { Point* pointArray = new Point[size]; ... delete [] pointArray; }
Peruntukan Di Tempat (Tanpa "baharu")
Peruntukan di tempat adalah lebih baik atas sebab prestasi. Ia berlaku secara automatik untuk objek yang diisytiharkan dalam kelas.
class Foo { Point p; // p will be destroyed when Foo is };
Ingat bahawa memperuntukkan dan membebaskan objek menggunakan "baharu" adalah lebih intensif pengiraan daripada peruntukan di tempat. Gunakannya hanya apabila perlu untuk mengelakkan overhed yang tidak perlu.
Atas ialah kandungan terperinci Bilakah Saya Harus Menggunakan Operator 'baru' dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!