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

Linda Hamilton
Lepaskan: 2024-11-24 06:35:11
asal
905 orang telah melayarinya

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

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

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!

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