Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Instalasi Baharu lwn. Bukan Baharu dalam C : Apakah Perbezaan Utama?

Instalasi Baharu lwn. Bukan Baharu dalam C : Apakah Perbezaan Utama?

Linda Hamilton
Linda Hamiltonasal
2024-11-24 06:35:11906semak imbas

New vs. Non-new Instantiation in C  : What are the Key Differences?

Perbezaan Instansiasi: baharu lwn. Bukan baharu

Soalan ini meneroka perbezaan fungsi antara menginstant objek menggunakan operator baharu dan menginstantnya tanpa baharu.

Bukan baharu Instantiation

Time t(12, 0, 0); // t is a Time object

Instasiasi ini mencipta objek Masa bernama t yang berada pada tindanan (dalam kebanyakan pelaksanaan). Ia mengekalkan kewujudannya dalam skop semasa.

Semerta baharu

Time *t = new Time(12, 0, 0); // t is a pointer to a dynamically allocated Time object

Semerta ini memperuntukkan memori secara dinamik menggunakan operator new(), dan kemudian memanggil pembina Time( ). Alamat blok memori yang diperuntukkan disimpan dalam t. Objek Masa berada pada timbunan (biasanya). Kemudian dalam atur cara, t mesti dipadamkan untuk melepaskan memori yang diperuntukkan dan mengelakkan kebocoran memori.

Perbezaan Fungsian

Selain perbezaan yang jelas dalam pengurusan memori, tiada perbezaan fungsi yang ketara antara kedua-dua instantiasi. Kedua-dua kaedah mencipta kejadian kelas Masa dengan parameter yang ditentukan.

N.B.

Istilah "timbunan" dan "timbunan" biasanya digunakan untuk menunjukkan lokasi storan bagi objek yang diperuntukkan tindanan dan diperuntukkan timbunan, masing-masing. Walau bagaimanapun, piawaian C tidak mengenakan perbezaan ini berdasarkan lokasi memori. Sebaliknya, ia mengkategorikan objek berdasarkan tempoh storannya, yang mungkin sejajar atau tidak dengan konsep timbunan dan timbunan konvensional.

Atas ialah kandungan terperinci Instalasi Baharu lwn. Bukan Baharu dalam C : Apakah Perbezaan Utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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