Ангийн объект, бусад тохиолдлуудтай ажиллахдаа атрибутуудад хандах нь програм зохиогчийн хувьд ердийн үйлдлүүдийн нэг юм. Обьектуудад хадгалагдсан зарим өгөгдөлд хандах аюулгүй байдлын аргыг харгалзан үзэх нь хэцүү байж болно. Тиймээс, хувийн болон хамгаалагдсан тодорхойлогчдын хаагдсан шинж чанаруудыг зөвхөн ижил төстэй объект эсвэл хүүхдийн (хамгаалагдсан) ангилалд хамаарах аргаар ангийн жишээнээс гаргаж болно.
Зааварчилгаа
1-р алхам
Програмдаа шинж чанар шаардагдах ангийн жишээнд объект эсвэл заагчийг үүсгэ. Ийм ажиллагааны стандарт барилга нь CMyClass myObj1 юм. Заримдаа объектыг эхлүүлэхийн тулд та тодорхой параметрүүдийг класс байгуулагчид дамжуулах ёстой. Энэ тохиолдолд объект үүсгэх бичлэг дараах байдалтай байж болно: CMyClass myObj1 (param1, param2, param3), энд CMyClass бол ангийн нэр, myObj1 нь үүсгэж буй объектын нэр бөгөөд байгуулагчаас хүссэн бүх параметрүүдийг жагсаасан болно. Хаалтанд. Ангийн жишээг заагчийг дараах байдлаар үүсгэсэн болно: CMyClass * pObj1 = шинэ CMyClass (param1, param2, param3).
Алхам 2
Атрибутыг дуудах хамгийн энгийн арга бол програмын аль ч хэсэгт шууд хандах явдал юм. Гэхдээ энэ нь зөвхөн public modifi-тэй анги дээр тайлбарласан нээлттэй өгөгдөлд л боломжтой юм. Объектоор шууд нэвтрэх нь дараах байдалтай байна: myObj1.attr1, энд attr1 нь энэ ангийн шинж чанар юм. Заагчийн хувьд дуудлага дараах байдалтай байна: pObj1–> attr1.
Алхам 3
Хэрэв таны дурдах ёстой шинж чанар нь нууцлагдсан статустай бөгөөд хувийн модификатортой анги дээр тодорхойлогдсон бол түүнд хандах нь зөвхөн нэг ангид хамаарах аргаас боломжтой юм. Ангийн арга буюу үйл ажиллагаа нь олон нийтийн статустай байх ёстой. Шаардлагатай шинж чанарын боловсруулалтыг бичдэг ангидаа шинэ аргыг нэмж оруулаарай. Энэ тохиолдолд параметрүүдийг функцэд дамжуулж болох бөгөөд энэ нь тодорхой үйлдлүүдийг гүйцэтгэсэн үнээс хамаарна. Функц нь өөрөө шинж чанарын агуулга гэх мэт өгөгдлийг буцааж өгдөг. Хувийн атрибуттай ажиллах хоёр функцийг хоёуланг нь хэрэгжүүлдэг C ++ програмын код: class CMyClass {protected: int attr1; // нийтийн шинж чанар: void funcA1 (int param) {attr1 = param; } int funcA2 () {return attr1; }};
Алхам 4
Тиймээс attr1 хувийн шинж чанарыг шаардлагатай утгад тохируулахын тулд өмнө нь үүсгэсэн объектыг ашиглан ижил ангийн аргыг дуудах хэрэгтэй: myObj1.funcA1 (10) - ижил төстэй далд үйлдлээр 10 утгыг attr1 атрибутад байрлуулна. Ангийн жишээнд заагчтай ажиллахад ижил төстэй үйлдэл дараах байдалтай байна: рObj1–> funcA (10). Attr1 гэсэн хувийн шинж чанарыг олж авахын тулд хадгалагдсан утгыг олж мэдэхийн тулд классын өөр аргыг дуудах хэрэгтэй: int Res = myObj1.funcA2 (). Энэ тохиолдолд Res бүхэл тоонд хувьсагчийн нууцлагдсан хувьсагчийн утга оноогдоно.
Алхам 5
Хэрэв та хүүхдийн ангиллын бүх объектод хамгаалагдсан статустай шинж чанарыг дуудах шаардлагатай бол түүний хувьсагч руу шууд хандана уу. Гэсэн хэдий ч гадаад ангиудын функцэд ажиллахдаа хамгаалагдсан өгөгдөлд хандах хандалтыг дээр дурдсан аргаар олж авах шаардлагатай болно.
Алхам 6
Атрибутыг объект үүсгэхгүйгээр дуудахын тулд дараахь бүтцийг ашиглан анги дахь хувьсагчаа статик гэж зарла: static int attr1. Энэ тохиолдолд та оруулгыг зааж өгөөд шинж чанараа програмын кодын хаана ч байсан татаж авч болно: CMyClass:: attr1.