Rumah > pembangunan bahagian belakang > C++ > Bilakah Saya Harus Menggunakan Operator 'baru' dalam C ?

Bilakah Saya Harus Menggunakan Operator 'baru' dalam C ?

DDD
Lepaskan: 2024-11-30 10:51:11
asal
812 orang telah melayarinya

When Should I Use the

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

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

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

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan