Mundarija:

C++ da sinf ob'ektini dinamik ravishda ajratish uchun qaysi operatordan foydalaniladi?
C++ da sinf ob'ektini dinamik ravishda ajratish uchun qaysi operatordan foydalaniladi?

Video: C++ da sinf ob'ektini dinamik ravishda ajratish uchun qaysi operatordan foydalaniladi?

Video: C++ da sinf ob'ektini dinamik ravishda ajratish uchun qaysi operatordan foydalaniladi?
Video: 2 маъруза ТЙ2Тда махсус ўлчовлар 2024, Aprel
Anonim

C++ ni qo'llab-quvvatlaydi dinamik ajratish va taqsimlash ob'ektlar yangidan foydalaning va o'chiring operatorlar . Bular operatorlar ajratadi uchun xotira ob'ektlar bepul do'kon deb ataladigan hovuzdan. Yangi operator maxsus funksiyani chaqiradi operator yangi va o'chirish operator maxsus funksiyani chaqiradi operator o'chirish.

Shu tarzda, C++ da obyektlar massivini qanday qilib dinamik ravishda taqsimlash mumkin?

C++ Eslatmalar: Massivlarni dinamik taqsimlash

  1. Ruxsat etilgan o'lchamli massivlar bilan bog'liq muammolar. Qattiq o'lchamli massivni e'lon qilish.
  2. Massivni ko'rsatkich sifatida e'lon qiling, new bilan ajrating. Dinamik ravishda ajratilgan massivga ishora qiluvchi o'zgaruvchini yaratish uchun uni element turiga ko'rsatgich sifatida e'lon qiling.
  3. Kod> new bilan massivni ajrating.
  4. Yo'q qilish bilan xotirani bo'shatish.
  5. Misollar.

Bundan tashqari, C++ da xotirani dinamik ravishda qanday ajratasiz va ajratasiz? C malloc() va calloc() funksiyalaridan foydalanadi xotirani dinamik ravishda taqsimlash ish vaqtida va ozod qilish uchun free() funksiyasidan foydalanadi dinamik ravishda ajratilgan xotira . C++ ushbu funktsiyalarni qo'llab-quvvatlaydi, shuningdek, ikkita yangi va o'chirish vazifasini bajaradigan operatorlarga ega ajratish va ozod qilish xotira yaxshiroq va osonroq yo'l bilan.

Xuddi shunday savol tug'ilishi mumkin: ob'ektlari faqat dinamik ravishda taqsimlanishi mumkin bo'lgan C++ sinfini qanday qilish mumkin?

  1. Amalga oshirib bo'lmaydi. Siz qila oladigan yagona narsa - konstruktorni shaxsiy qilish va sinfning yangi nusxasini yaratadigan statik zavodga ega bo'lish. -
  2. Bunday sinfni yaratish, albatta, muammodir.
  3. Bu juda g'alati talab.

C++ da ob'ektning dinamik taqsimlanishini qanday cheklashim mumkin?

Stakka asoslangan ob'ektlar tomonidan bilvosita boshqariladi C++ kompilyator. Ular doiradan chiqib ketganda vayron bo'ladi va dinamik ravishda ajratilgan ob'ektlar qo'lda bo'shatish kerak, aks holda o'chirish operatori yordamida xotira oqish sodir bo'ladi. C++ Java va C# kabi tillar tomonidan ishlatiladigan axlatni avtomatik yig'ish usulini qo'llab-quvvatlamaydi.