Friend Flashcards

1
Q

Nedir

A

friend anahtar kelimesi, C++ programlama dilinde sınıflar arasında dostluk ilişkisi (friendship) kurmak için kullanılır. Bir sınıfın friend olarak tanımlanan bir başka sınıfa, o sınıfın özel üyelerine (private veya protected) erişim izni verilir.

friend anahtar kelimesinin kullanımı, sınıf tanımının içerisinde yapılır. Bir sınıfın friend olarak tanımlanan bir diğer sınıfa erişim izni verirken, bu tanımın iki sınıf arasında yer alması gerekmektedir. Yani, dostluk ilişkisi tanımlanacak olan sınıfın tanımı içerisinde, dost olacak sınıfın ismi belirtilir.

Örneğin;

class MyClass {
private:
int privateData;

public:
MyClass() : privateData(0) {}

friend class FriendClass; };

class FriendClass {
public:
void accessPrivateData(MyClass& obj) {
obj.privateData = 10; // MyClass’in private üyesine erişim
}
};

int main() {
MyClass obj;
FriendClass friendObj;
friendObj.accessPrivateData(obj);

return 0; }

Yukarıdaki örnekte, MyClass adlı sınıf, FriendClass adlı bir başka sınıfı friend olarak tanımlamıştır. Bu sayede, FriendClass sınıfı MyClass’ın privateData adlı özel bir üyesine erişebilir. FriendClass’ın accessPrivateData fonksiyonu, MyClass’ın privateData üyesine doğrudan erişim sağlar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Neden kullanılır

A

friend anahtar kelimesi, iyi bir şekilde kullanıldığında, sınıflar arasında daha esnek bir iletişim ve işbirliği sağlar. Ancak, friend kullanımı dikkatli bir şekilde yapılmalıdır çünkü sınıflar arasında güvenlik sınırlarını ihlal edebilir ve encapsulation (kapsülleme) prensiplerine aykırı düşebilir. friend ilişkisinin gerektiği durumlar için iyi bir çözüm olabilir, ancak kullanımının dikkatli bir şekilde değerlendirilmesi önemlidir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly