class Sinf1; // синфнинг тўлиқмас эълони
class Sinf2;
{
int d;
public;
Sinf2(int _d){d= _d;}
// Дўст функция прототипи
friend bool Karrali_Sonlar(Sinf1 ob1, Sinf2 ob2);
};
class Sinf1
{
int n;
public:
Sinf1(int _n){n= _n;}
// Дўст функция прототипи
friend bool Karrali_Sonlar(Sinf1 ob1, Sinf2 ob2);
};
bool Karrali_Sonlar(Sinf1 ob1, Sinf2 ob2)
{
if (!(ob1.n % ob2.d)) return true;
else return false;
}
main()
{
Sinf1 obekt1(15);
Sinf2 obekt2(3);
if (Karrali_Sonlar(obekt1,obekt2))
cout<<”Sonlar karrali!”;
else cout<<”Sonlar karrali emas!”;
return 0;
}
Бу мисолда синфнинг тўлиқмас эълонидан фойдаланиш кўрсатилган. Бу қўрилмани қўлламасдан ҳали эълони берилмаган синф номини ишлатиб бўлмайди.
Функция бир синфнинг аъзоси бўлган ҳолда бошқа синфнинг дўсти бўлиши мумкин.
Масалан:
include
class Sinf1; // синфнинг тўлиқмас эълони
class Sinf2;
{
int d;
public;
Sinf2(int _d){d= _d;}
bool Karrali_Sonlar(Sinf1 ob1);
};
class Sinf1
{
int n;
public:
Sinf1(int _n){n= _n;}
// Дўст функция прототипи
friend bool Sinf2::Karrali_Sonlar(Sinf1 ob1);
};
bool Sinf2::Karrali_Sonlar(Sinf1 ob1)
{
if (!(ob1.n % d)) return true;
else return false;
}
main()
{
Sinf1 obekt1(15);
Do'stlaringiz bilan baham: |