ከክፍል ዕቃዎች እና ሌሎች አጋጣሚዎች ጋር በሚሰሩበት ጊዜ ባህሪያትን መድረስ ለፕሮግራም ባለሙያ መደበኛ ስራዎች አንዱ ነው ፡፡ ለእነሱ ጥቅም ላይ ከሚውሉት የደህንነት ዘዴዎች አንጻር በእቃዎች ውስጥ የተከማቸውን የተወሰነ ውሂብ ማግኘት አስቸጋሪ ሊሆን ይችላል ፡፡ ስለዚህ በግል እና በተጠበቁ አመልካቾች የተዘጉ ባህሪዎች ከክፍል ምሳሌ ሊወጡ የሚችሉት የአንድ ወይም የአንድ ልጅ (ለተጠበቀ) ክፍል ንብረት በሆነ ዘዴ ብቻ ነው ፡፡
መመሪያዎች
ደረጃ 1
በፕሮግራምዎ ውስጥ ባህሪያቱን ለሚፈልጉት ክፍል አንድ ነገር ወይም ጠቋሚ ይፍጠሩ ፡፡ ለእንደዚህ ዓይነቱ አሠራር መደበኛ ግንባታ CMyClass myObj1 ነው። አንዳንድ ጊዜ አንድን ነገር ለማስጀመር የተወሰኑ መለኪያዎች ለክፍሉ ግንበኛው ማስተላለፍ አለብዎት ፡፡ በዚህ ጊዜ የነገር ፈጠራ መዝገብ እንደዚህ ሊመስል ይችላል-CMyClass myObj1 (param1, param2, param3) ፣ CMyClass የክፍል ስም ፣ myObj1 የተፈጠረው ነገር ስም ነው ፣ እና በገንቢው የተጠየቁት ሁሉም መለኪያዎች ተዘርዝረዋል በቅንፍ ውስጥ. ለክፍል ምሳሌ ጠቋሚ እንደሚከተለው ተፈጥሯል- CMyClass * pObj1 = new CMyClass (param1, param2, param3).
ደረጃ 2
ባህሪን ለመጥራት ቀላሉ መንገድ በቀጥታ በፕሮግራሙ ውስጥ በማንኛውም ቦታ ማመልከት ነው ፡፡ ሆኖም ፣ ይህ የሚቻለው ከህዝብ ማሻሻያ ጋር በአንድ ክፍል ውስጥ ለተገለጸው ክፍት መረጃ ብቻ ነው ፡፡ በአንድ ነገር በኩል ቀጥታ መድረሻ እንደዚህ ይመስላል myObj1.attr1 ፣ የት attr1 የዚህ ክፍል ባህሪ ነው። ለጠቋሚ ፣ ጥሪው የሚከተለው ይሆናል-pObj1–> attr1.
ደረጃ 3
ሊያመለክቱት የሚፈልጉት ባህርይ የተደበቀ ሁኔታ ካለው እና ከግል መቀየሪያው ጋር በአንድ ክፍል ውስጥ ከተገለጸ ወደዚያ መድረስ የሚቻለው በተመሳሳይ ክፍል ውስጥ ካለው ዘዴ ብቻ ነው ፡፡ የክፍሉ ዘዴ ወይም ተግባር የህዝብ ደረጃ የህዝብ መሆን አለበት። በክፍል ውስጥ አዲስ ዘዴ ያክሉ ፣ የሚፈለገውን አይነታ አሠራር በሚጽፉበት። በዚህ ሁኔታ የተወሰኑ እርምጃዎች በሚከናወኑበት ዋጋ ላይ መመዘኛዎች ወደ ተግባሩ ሊተላለፉ ይችላሉ ፡፡ ተግባሩ ራሱ እንደ የባህርይ ይዘት ያለ ውሂብም መመለስ ይችላል። ከግል አይነታ ጋር ለመስራት ሁለቱንም ተግባራት የሚያከናውን የ C ++ ፕሮግራም ኮድ-ክፍል CMyClass {protected: int attr1; // ይፋዊ ባህሪ: ባዶ 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.