Video: C++ тилинде объекттин динамикалык бөлүштүрүлүшүн кантип чектөөгө болот?
2024 Автор: Lynn Donovan | [email protected]. Акыркы өзгөртүү: 2023-12-15 23:50
Стек негизделген объектилер тарабынан кыйыр түрдө башкарылат C++ компилятор. Алар чегинен чыгып кеткенде жок кылынат жана динамикалык бөлүнгөн объекттер жок кылуу операторун колдонуу менен кол менен бошотулушу керек эс агып чыгуу пайда болот. C++ Java жана C# сыяктуу тилдерде колдонулган таштандыны автоматтык түрдө чогултуу ыкмасын колдобойт.
Муну эске алып, C++ тилинде объекттин динамикалык бөлүштүрүлүшүн кантип чектөөгө болот?
Стек негизделген объектилер тарабынан кыйыр түрдө башкарылат C++ компилятор. Алар чегинен чыгып кеткенде жок кылынат жана динамикалык бөлүнгөн объекттер жок кылуу операторун колдонуу менен кол менен бошотулушу керек эс агып чыгуу пайда болот. C++ Java жана C# сыяктуу тилдерде колдонулган таштандыны автоматтык түрдө чогултуу ыкмасын колдобойт.
Кошумчалай кетсек, биз CPPде объекттерге эстутумду динамикалык түрдө бөлө алабызбы? Динамикалык эстутумду бөлүштүрүү үчүн Объекттер Биз кыла алабыз ошондой эле объекттерди динамикалык бөлүштүрүү . As биз Конструктор класстын мүчө-функциясы экенин билишет, ал жаңы болгондо чакырылат объект ошол класстан түзүлгөн. Деструктор дагы класстын мүчөсү функциясы болуп саналат, ал каалаган убакта чакырылат объект чегинен чыгат.
Адамдар дагы сурашат, объекттери динамикалык түрдө гана бөлүштүрүлө турган C++ классын кантип жасайсыз?
- кылуу мүмкүн эмес. Сиз жасай ала турган жалгыз нерсе - конструкторду жеке кылуу жана класстын жаңы нускасын курган статикалык фабрикага ээ болуу. –
- Мындай классты түзүү, албетте, көйгөй.
- Бул абдан кызыктай талап.
Эмне үчүн биз объекттердин динамикалык инициализациясын кылышыбыз керек?
The Объекттердин динамикалык инициализациясы дегенди билдирет инициализациялоо түзүү учурунда класстын маалымат мүчөлөрү объект . Качан Биз каалайбыз түзүү учурунда маалымат мүчөлөрүнө баштапкы же демейки маанилерди берүү объект - бизге керек колдонуу объекттерди динамикалык инициализациялоо.