Sinf a’zolari. Inkapsilyatsiya Hafta: 2 Ma’ruza: 2


Ko’p qo’shishning oldini olish



Yüklə 462,77 Kb.
səhifə2/4
tarix28.11.2023
ölçüsü462,77 Kb.
#135849
1   2   3   4
Leksiya #2

2. Ko’p qo’shishning oldini olish

2. Ko’p qo’shishning oldini olish

Agar TestHead.cpp kompilyatsiya qilinsa, u holda xatolik yuzaga keladi, chunki bu yerda Circle ko’p marta aniqlanayapti. Buning nimasi not’g’ri? Circle.h 1-qatorga qo’shildi. Bu paytda Circle header fayli Head.h ga ham qo’shildi. Bu ko’p marta qo’shish xatoligiga olib keladi.

#ifndef va #define direktivalari header fayllarni ko’p marta qo’shish xatoligining oldini oladi. Bu jarayon qo’shish himoyasi deb ataladi. Dastur ishlashi uchun header faylga 3 qator kod yozib qo’yiladi. Bu jarayon quyidagi listingda ajratib ko’rsatilgan.

Listing 9.8 CircleWithInclusionGuard.h

2. Ko’p qo’shishning oldini olish

(#) belgisi bilan boshlanuvchi buyruqlar preprotsessor direktivalari deyiladi. Ular C++ preprotsessorlari tomonidan interpritatsiya qilinadi. #ifndef preprotsessor direktivasi “agar aniqlanmagan bo’lsa ( if not defined )” holatida qo’llaniladi. Birinchi qator CIRCLE_H belgisi oldindan aniqlanmaganligini tekshiradi. Agar aniqlanmagan bo’lsa, u holda ikkinchi qatorda #define direktivasi orqali belgi aniqlanadi va header faylning qolgan qismi qo’shiladi, aks holda header faylning qolgan qismi tashlab yuboriladi. #endif direktivasi header faylning yakunlanganini anglatadi.

2. Ko’p qo’shishning oldini olish

Sinfni aniqlashda ko’p marta qo’shish xatosidan qutilish va belgiga nom berish uchun quyidagi shablondan foydalnishingiz mumkin:

#ifndef SinfNomi_H

#define SinfNomi_H

SinfNomi deb nomlangan sinfning header qismi

#endif

3. Sinflarda inline funksiyalar

Ishlashni yaxshilash uchun qisqa funksiyalarni inline funksiyalar sifatida aniqlashingiz mumkin.

Sinf aniqlanishida funksiya imlementatsiya qilinsa, u avtomatik ravishda inline funksiyaga aylanadi. Bu jarayon inline aniqlanish deb ham ataladi. Misol uchun, quyidagi A sinf aniqlanishida konstruktor va f1 funksiya inline funksiyalar, ammo f2 bunday emas.


Yüklə 462,77 Kb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə