Мазмуну:

С++ тилинде класстын объектисин динамикалык бөлүштүрүү үчүн кайсы оператор колдонулат?
С++ тилинде класстын объектисин динамикалык бөлүштүрүү үчүн кайсы оператор колдонулат?

Video: С++ тилинде класстын объектисин динамикалык бөлүштүрүү үчүн кайсы оператор колдонулат?

Video: С++ тилинде класстын объектисин динамикалык бөлүштүрүү үчүн кайсы оператор колдонулат?
Video: МЖК Оффтоп. Английский: говорить или не говорить? 2024, Апрель
Anonim

C++ колдойт динамикалык бөлүштүрүү жана бөлүштүрүү объектилер жаңы колдонуу жана жок кылуу операторлор . Булар операторлор бөлүп берет үчүн эс объектилер бекер дүкөн деп аталган бассейнден. Жаңы оператор атайын функцияны чакырат оператор жаңы жана жок кылуу оператор атайын функцияны чакырат оператор жок кылуу.

Ушундай жол менен C++ тилинде объекттердин массивдерин кантип динамикалык түрдө бөлүштүрө аласыз?

C++ Эскертүүлөр: Массивдердин динамикалык бөлүштүрүлүшү

  1. Белгиленген өлчөмдөгү массивдер менен көйгөйлөр. Белгиленген өлчөмдөгү массивди жарыялоо сыяктуу.
  2. Массивди көрсөткүч катары жарыялоо, жаңы менен бөлүштүрүү. Динамикалык түрдө бөлүнгөн массивди көрсөтө турган өзгөрмө түзүү үчүн, аны элементтин түрүнө көрсөткүч катары жарыялаңыз.
  3. Код>жаңы менен массивди бөлүңүз.
  4. Эстутумду жок кылуу менен бошотуу.
  5. Мисалдар.

Кошумчалай кетсек, сиз C++ тилинде эстутумду динамикалык түрдө кантип бөлүштүрөсүз жана бөлүштүрөсүз? C malloc() жана calloc() функцияларын колдонот эстутумду динамикалык бөлүштүрүү иштөө убагында жана бошотуу үчүн free() функциясын колдонот динамикалык бөлүнгөн эс . C++ бул функцияларды колдойт, ошондой эле тапшырманы аткарган жаңы жана өчүрүүчү эки оператор бар бөлүү жана бошотуу эс жакшыраак жана жеңил жол менен.

Ошо сыяктуу эле, объекттери динамикалык түрдө гана бөлүштүрүлө турган C++ классын кантип түзүүгө болот?

  1. кылуу мүмкүн эмес. Сиз жасай ала турган жалгыз нерсе - конструкторду жеке кылуу жана класстын жаңы нускасын курган статикалык фабрикага ээ болуу. –
  2. Мындай классты түзүү, албетте, көйгөй.
  3. Бул абдан кызыктай талап.

C++ тилинде объекттин динамикалык бөлүштүрүлүшүн кантип чектөөгө болот?

Стек негизделген объектилер тарабынан кыйыр түрдө башкарылат C++ компилятор. Алар чегинен чыгып кеткенде жок кылынат жана динамикалык бөлүнгөн объекттер жок кылуу операторун колдонуу менен кол менен бошотулушу керек эс агып чыгуу пайда болот. C++ Java жана C# сыяктуу тилдерде колдонулган таштандыны автоматтык түрдө чогултуу ыкмасын колдобойт.