Misol
#include
#include
using namespace std;
class Nizom { // Nizom class nomi
public:
void Nizom_haqida() // Motod elon qilamiz
{
cout << "Yoshi 21 da" << endl;
cout << "Ismi NizomiddiN" << endl;
}
};
int main() {
Nizom obyekt; // Nizom class obyekt elon qilamiz
obyekt.Nizom_haqida();
return 0;
}
2. Kirish ko’rsatgichlari ( “public”, “private” , “protected” )
Public Kalit so'z bir bo'lib kirish ma'lumoti. Kirish ko'rsatkichlari sinf a'zolariga (atributlari va usullari) qanday kirish mumkinligini belgilaydi. Yuqoridagi misolda a'zolar public- bu ularga koddan tashqaridan kirish va o'zgartirish mumkin degan ma'noni anglatadi.
Ammo, agar a'zolar shaxsiy va tashqi dunyodan yashirin bo'lishini istasak nima bo'ladi?
C++ da uchta kirish spetsifikatsiyasi mavjud:
public - a'zolarga sinfdan tashqarida kirish mumkin
private - a'zolarga sinfdan tashqarida kirish (yoki ko'rish) mumkin emas
protected- a'zolarga sinfdan tashqaridan kirish mumkin emas, ammo ularga meros qilib olingan sinflarda kirish mumkin. Meros haqida keyinroq bilib olasiz .
Quyidagi misolda biz public va private a'zolar o'rtasidagi farqlarni ko'rsatamiz :
Misol
class MyClass {
public: // Public ochiq
int x;
private: // Private yopiq
int y;
};
int main() {
MyClass myObj;
myObj.x = 25; // kirish mukin (public)
myObj.y = 50; // kirish mumkin emas (private)
return 0;
}
3.Do’st funksiyalar
shaxsiy va himoyalangan aʼzolariga kirish ruxsati beriladi. Ular global miqyosda sinf doirasidan tashqarida aniqlanadi. Doʻst funksiyalari sinfning aʼzo funksiyalari emas. Xo'sh, do'st funktsiyasi nima?
Do'st funksiyasi sinfdan tashqarida e'lon qilingan, lekin sinfning shaxsiy va himoyalangan a'zolariga kirishga qodir bo'lgan funksiyadir. Dasturlashda ikkita sinf o'z a'zolarini baham ko'rishini xohlaydigan vaziyatlar bo'lishi mumkin. Bu a'zolar ma'lumotlar a'zolari, sinf funktsiyalari yoki funksiya shablonlari bo'lishi mumkin. Bunday hollarda biz kerakli funktsiyani ikkala sinfga do'st qilamiz, bu esa sinfning shaxsiy va himoyalangan ma'lumotlar a'zolariga kirish imkonini beradi.
Odatda, a'zo bo'lmagan funktsiyalar ma'lum bir sinfning shaxsiy a'zolariga kira olmaydi. Do'st funksiyasi sifatida e'lon qilingandan so'ng, funktsiya ushbu sinflarning shaxsiy va himoyalangan a'zolariga kira oladi.
#include
using namespace std;
class A {
private:
int a;
public:
A() { a = 0; }
friend class B; // Do'st funksiya
};
class B {
private:
int b;
public:
void showA(A& x)
{
cout << "A::a=" << x.a << endl;
}
};
int main()
{
A a;
B b;
b.showA(a);
return 0;
}
Do'stlaringiz bilan baham: |