Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»


мəліметтер_типі(класс_атауы::*нұсқауыш_атауы)



Pdf көрінісі
бет299/642
Дата30.03.2022
өлшемі3,66 Mb.
#29231
түріПрограмма
1   ...   295   296   297   298   299   300   301   302   ...   642
мəліметтер_типі(класс_атауы::*нұсқауыш_атауы); 

Нұсқауыш анықтамасына оның инициалдануын мынадай түрде енгізуге 

болады:

&класс_атауы::*өріс_атауы; // Өріс  public болуы тиіс



215

Егер 


health 

өрісі


 public 

ретінде жарияланған болса, онда оған 

нұсқауыштың анықтамасы келесідей түрде болатын еді:

int (monstr::*phealth) = &monstr::health;

cout << Vasia.*phealth;   // .* операциясын қолдану

cout << p->*phealth;      // ->* операциясын қолдану

Класс өрістеріне нұсқауыштар қарапайым нұсқауыштар болмайтынына на-

зар аударыңыз – оларға мəндерді меншіктеген кезде олар нақты жады адресіне 

сілтеме жасамайды, өйткені жады кластар үшін емес, класс объектілері үшін 

бөлінеді.

Класс құрамы бойынша ұсыныстар

Кластар құру, олармен жұмыс істеу мысалдарына практикумның [12] 

бірінші семинары арналған.

Көбінесе, қолданушы анықтаған тип ретінде класс құрамында жасырын 

(

private

)  өрістер жəне келесі  функциялар қамтылуы керек:

□  класс объектілерінің калай инициалданатынын анықтайтын конструк-

торлар;

□  кластың қасиеттерін жүзеге асыратын əдістер жиынтығы (мұндайда 

кластың жасырын өрістерінің мəндерін қайтаратын əдістер 



const 

мо-


дификаторы арқылы сипатталады, бұл модификатор өрістер мəндерінің 

өзгертілмейтіндігін көрсетеді);

□  объектілерді көшіруге, меншіктеуге, салыстыруға жəне олармен 

кластың қасиеттеріне байланысты басқа да əрекеттерді орындауға 

мүмкіндік беретін операциялар

 жиынтығы;

□  ерекше жағдайларды генерациялау арқылы қателер туралы хабарлама-

лар үшін пайдаланылатын аластамалар класы (ол туралы  240 б. айты-

латын болады).

Егер класпен немесе бірнеше класпен интерфейс арқылы жұмыс істейтін 

(яғни жасырын өрістерге енудің қажеті жоқ) функциялар бар болса, онда 

интерфейстерді асыра жүктемеу үшін осы функцияларды кластан тыс сипаттауға 

болады, ал логикалық байланысты қамтамасыз ету үшін оларды осы кластар-

мен ортақ атаулар кеңістігіне орналастыру керек, мысалы:



Достарыңызбен бөлісу:
1   ...   295   296   297   298   299   300   301   302   ...   642




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет