Doira2.radius = 100;17 cout << " Radius doirasining maydoni " << Doira 2.radius << " is " << Doira 2.getArea() << endl; return 0; } 2. Ko`p marta bog`lanishning oldini olish- Bog`lanishdan himoya bosh fayllarning ko`p marta bog`lanishining oldini oladi. Bog`lanishdan himoya bosh fayllarning ko`p marta bog`lanishining oldini oladi. Bosh fayllarning ko`p sonli bog`lanishlarining oldini olish uchun C++ ning #define direktivasi o`rniga #ifndef direktivasini qo`llash mumkin. Bu “bog`lanishdan himoya” nomini olgan. Buning ishlashi uchun bosh faylga uchta satr qo`shishimiz kerak bo`ladi.
#ifndef CIRCLE_H #define CIRCLE_H
class Circle { public: // Ushbu doira radiusi double radius;
// Boshlang`ich doira ob’yektini qurish Circle();
// Doira ob’yektini qurish Circle(double);
// Ushbu doiraning yuzasini qaytarish double getArea(); };
#endif Protsessorning #ifndef direktivasi “agar aniqlanmasa” ma’nosida keladi
3. Sinflarda inlayn funksiyalar- Ishlash samaradorligini oshirish maqsadida, qisqa funksiyalarni inlayn funksiya sifatida aniqlashimiz mumkin. Sinf tarkibida aniqlangan har qanday funksiya avtomatik tarzda inlayn funksiya sifatida olinadi. Masalan, quyidagi A sinf uchun konstruktor va f1 funksiya uchun aniqlanish avtomatik inlayndir, f2 funksiyasi uchun esa – yo`q. class A { public: A() { // Nimadir bajarish; } double f1() { // sonni qaytarish } double f2(); };
4. O`zgaruvchilar chegarasi- . Nusxa va statik o`zgaruvchilarning faoliyat doirasi – o`zgaruvchilar qayerda e’lon qilinishidan qat’iy nazar bir butun sinfdir. Global o`zgaruvchilar hech bir funksiya tarkibida kelmaydigan, o`zi ishlatiluvchi joyda barcha funksiyalar uchun ruxsat etilgan o`zgaruvchidir. Global o`zgaruvchining faoliyat sohasi u e’lon qilingan joydan boshlanib, dastur kodining so`nggiga qadar davom etadi. Lokal o`zgaruvchilar funksiyaning ichida aniqlanadi. Uning amal qilish sohasi u e’lon qilingan joydan boshlanib, u joylashgan blok so`nggiga qadar davom etadi. Statik lokal o`zgaruvchilar dasturda doimiy saqlanadi va shuning uchun undan keyingi funksiya chaqiruvida foydalanish mumkin. Ma’lumotlar maydoni ham o`zgaruvchi sifatida e’lon qilinadi va sinfdagi barcha konstruktorlar va funksiyalar uchun ochiq (ruxsat etilgan) hisoblanadi. Lokal o`zgaruvchilar funksiyalar tarkibida lokal ko`rinishida e’lon qilinishi va foydalanilishi mumkin. Agar lokal o`zgaruvchi ma’lumotlar maydoni bilan bir xildagi nomga ega bo`lsa, lokal o`zgaruvchi ustunlikka ega bo`ladi, shu nomdagi ma’lumotlar maydoni esa yashirin holatga o`tadi.