Курс лекций мдк 01. 02 «Прикладное программирование» пм 01 «Разработка программных модулей программного обеспечения для компьютерных систем»


Тема «Друзья класса. Использование служебного слова friend»



Download 350,99 Kb.
bet13/22
Sana08.12.2022
Hajmi350,99 Kb.
#881790
TuriКурс лекций
1   ...   9   10   11   12   13   14   15   16   ...   22
Bog'liq
lektsii pm01-1

Тема «Друзья класса. Использование служебного слова friend» Функции-друзья это функции, не являющиеся функциями-методами



  • тем не менее имеющие доступ к защищённым и закрытым полям класса. Они должны быть объявлены в теле класса как friend. Например:

class Matrix {


...
friend Matrix Multiply(Matrix m1, Matrix m2);

...
};


Matrix Multiply(Matrix m1, Matrix m2) {


...

}


Здесь функция Multiply может обращаться к любым полям и функциям-методам класса Matrix.



27

Дружественной может быть объявлен как весь класс, так и функция-метод класса. Если класс A — объявлен в классе B как друг, то все собственные (не унаследованные) функции-методы класса A могут обращаться к любым членам класса B. Например:


class Matrix {


...
friend class Vector::getNum( Matrix & ) ;

...
private:


int i;
};
...

class Vector


{
int GetNum( Matrix & m ){ return m.i;} //обращение к закрытому члену
данных класса Matrix
};

Пример обращения:


void SomeFunction()


{
Matrix m;


Vector v;

int i = Vector::GetNum( m );


}


Четыре важных ограничения, накладываемых на отношения дружественности в C++:



    • Дружественность не транзитивна. Если A объявляет другом B, а B, в свою очередь, объявляет другом C, то C не становится автоматически другом для A. Для этого A должен явно объявить C своим другом.




    • Дружественность не взаимна. Если класс A объявляет другом класс B, то он не становится автоматически другом для B. Для этого должно существовать явное объявление дружественности A в классе B.



1   ...   9   10   11   12   13   14   15   16   ...   22




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish