The document discusses avoiding new and delete in modern C++ code by using smart pointers and containers provided by the standard library and third-party libraries. It provides examples of managing memory with new/delete in C and early C++ compared to modern approaches using classes, constructors, destructors, and smart pointers. The document also discusses specific cases where new and delete may still be needed, such as with intrusive reference counting objects and some GUI frameworks. Overall, it promotes using make functions like make_unique, make_shared, and containers by default to simplify memory management in C++.
Рассмотрены известные автору подходы к реализации как lock-free, так и fine-grained lock-based set/map: хеш-таблицы, деревья. Что из подходов STL может быть реализовано в lock-free манере, а что принципиально нет. Подводные камни lock-free и их нейтрализация.
1. L o g o
Програмчлалын хэл
Монгол Улаанбаатар Их Сургууль
2013 он
Java-гийн үндсэн үйлдлүүд
багш Б.Ганзориг
2. L o g o
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
Агуулга
Арифметик үйлдлүүд3
Үйлдлийн дараалал4
Анги болон объектын тухай1
Ангийн тухай2
Харьцуулах үйлдлүүд5
Нөхцөл шалгах үйлдэл6
3. L o g o
Анги болон объектын тухай
1. Нэг ижил шинж чанар, зан үйлтэй юмсын
бүлгийг объектын анги буюу товчоор анги
болгон тодорхойлдог.
2. Жава хэл ашиглан програмыг хэрэгжүүлэх үед
анги буюу class нь нэг юмуу хэд хэдэн объектыг
тодорхойлж үүсгэхэд ашиглах загвар буюу
тодорхойлолт болдог.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
4. L o g o
Анги болон объектын тухай
1. Аливаа анги нь талбар буюу Field гэж нэрлэх
өгөгдлийн утгууд болон тэр утгуудыг
боловсруулах аргууд буюу /method/ дэд
програмаас тогтсон байна.
2. Аргууд нь тэр төрлийн объектын гүйцэтгэдэг
үйлдэл, үйл ажиллагаа, зан үйлийг тодорхойлж
байдаг.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
5. L o g o
Анги болон объектын тухай
1. Анги нь тодорхойлолт юм бол тэр
тодорхойлолтыг хангасан объектыг яаж үүсгэх
вэ? гэсэн асуулт гарна.
2. Тодорхой ангийн нэрийг авч энэ ангийн нэг
объектыг өгдөг new гэсэн үйлдлийг Жава хэлэнд
ашигладаг.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
6. L o g o
Анги болон объектын тухай
1. new үйлдлээр үүсгэх объектыг уг ангийн нэг хувь
буюу instance гэж бид цаашид ярина.
2. Ингэж ангийн тодорхойлолтоор түүний хувь
үүсгэхийг хувилах буюу instantiation гэнэ.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
7. L o g o
Анги болон объектын тухай
1. Анги (class): Тодорхой объектыг үүсгэхэд
ашиглах загвар тодорхойлолтыг Жава хэлний
анги гэнэ.
2. Объект: Тодорхой ангийн тодорхойлолтоор
үүсгэсэн нэг хувь зүйлийг объект гэнэ.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
8. L o g o
Анги болон объектын тухай
1. Жава хэлний хувьд бид програмдаа шууд
ашиглах боломжтой маш олон ангийг бүтээж
санд хуримтлуулсан байдаг.
2. Тэдгээрийг ашиглахад хялбар болгохын тулд
пакет буюу package /боодол/, /багц/ гэж
нэрлэдэг, харьцангуй жижиг бүлгүүдэд хувааж
зохион байгуулдаг.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
9. L o g o
Анги болон объектын тухай
1. Ямар пакетийг гаднаас шинэ ангидаа ашиглах
гэж байгааг компилятор програмд хэлж өгөх
өгүүлбэрүүдийг импортын тодорхойлолт гэнэ.
Импорт гэдэг нь гаднаас оруулах гэсэн утгатай үг.
2. Програм бичихэд хэрэглэгдэж байгаа аргуудыг
агуулсан ангийг програмдаа импортлох
зайлшгүй шаардлага гарч болно.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
10. L o g o
Анги болон объектын тухай
1. Ямар пакетийг гаднаас шинэ ангидаа ашиглах
гэж байгааг компилятор програмд хэлж өгөх
өгүүлбэрүүдийг импортын тодорхойлолт гэнэ.
Импорт гэдэг нь гаднаас оруулах гэсэн утгатай үг.
2. Програм бичихэд хэрэглэгдэж байгаа аргуудыг
агуулсан ангийг програмдаа импортлох
зайлшгүй шаардлага гарч болно.
Бид эхний ээлжинд ямарч пакет ашиглахгүй учраас түүнийг бичих
дүрмийг одоохондоо үзэхгүй.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
11. L o g o
Анги болон объектын тухай
1. Арга буюу method: Объектын тодорхой нэг үйл
ажиллагаа, зан үйлийг тодорхойлсон дэд
програмыг объектын арга гэнэ.
2. Хувилах: Ангийн нэг хувь буюу объектыг
үүсгэхийг хувилах гэнэ
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
12. L o g o
Анги болон объектын тухай
1. Ангийн тодорхойлолт дахь class түлхүүр үгийг
агуулсан, тухайн ангийн нэрийг зааж өгч байгаа
мөрийг ангийн гарчиг гэж нэрлэнэ.
2. Гарчиг нь тодорхойлогчоор эхэлсэн байж болно
гэсэн байна.
3. Тодорхойлогч нь Жава хэлний түлхүүр үгээр
илэрхийлэгддэг бөгөөд тухайн ангийн зарим
ерөнхий шинж чанарыг тодорхойлж өгдөг.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
13. L o g o
Анги болон объектын тухай
1. Тодорхойлогчийн жишээ: private ба public
гэсэн тодорхойлогч байна гэж синтакс дүрмээр
заасан байдаг.
2. private нь хувийн гэсэн үг ба public нь олон
нийтийн, улсын гэсэн үг юм.
3. Энэ хоёр нь гаднаас, ө.х. уг ангийн гадна байгаа
аливаа элементээс энэ ангийг ашиглаж болох
эсэхийг зааж өгдөг учраас тэдгээрийг хандалтын
тодорхойлогч гэж нэрлэдэг.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
14. L o g o
Анги болон объектын тухай
Ангийн гадна байгаа элемент гэж юу вэ?
1. Тухайн ангид ашиглахаар импортын
тодорхойлолтод бичсэн пакет бүр нь уг ангийн
гаднах элемент болно.
2. Үүний зэрэгцээ, бидний бичих програмын анги
бүрийг ЖВМ дотор байдаг java гэсэн нэртэй
пакетын элемент болгож түүнд оруулдаг.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
15. L o g o
Анги болон объектын тухай
1. Иймд, хэрвээ ямар нэг нэрийг public гэж
тодорхойлбол java болон импортолсон бүх
пакетад тэр нэртэй элементийг ашиглахыг бид
зөвшөөрч байгаагийн тунхаглал болдог.
2. Жишээлбэл, бидний бичиж байгаа програмын
ангийг /товчоор програмыг/ ЖВМ биелүүлэх
боломжтой болгохын тулд бид түүний нэрийг
заавал public гэж тодорхойлох ёстой байдаг.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
16. L o g o
Анги болон объектын тухай
1. Ангийн гарчгийн дараа нээсэн { хаалт, ангийн
тодорхойлолтын дараалал, хаасан } хаалтыг
бичсэн байх ёстой байна. Энэ гурван
элементээс тогтсон хэсгийг ангийн бие гэж
нэрлэнэ.
2. Нээсэн ба хаасан хаалт нь харгалзан биеийн
эхлэл ба төгсгөлийг заадаг бол ямар ажил хийх
ёстойг компьютерт хэлж өгөх өгүүлбэрүүдийг
ангийн тодорхойлолт дотор бичдэг.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
17. L o g o
Анги болон объектын тухай
1. Ангийн тодорхойлолтод байгаа талбар, аргын
/ТалбарТодорхойлолт, АргаТодорхойлолт/
тодорхойлолт юм.
2. Дээрх синтакс дүрмээр бичиж болох хамгийн
хялбар Жава анги.
class DoNoThing {
}
Энэ хоосон бүрхүүлийг, асуудлын шийдэд хүргэх тийм
өгүүлбэрүүдээр дүүргэж бичих нь програмч бидний үүрэг юм.
Програмчлалын хэл Монгол Улаанбаатар Их Сургууль 2013 он
18. L o g o
Монгол Улаанбаатар Их Сургууль
2013 он
Програмчлалын хэл