C++'da Friend İşlevleri ve Örneklerle Kullanım Örneği

Yayınlanan: 2022-10-22

Veri gizleme, nesne yönelimli programlama dillerinde (OOP'ler) yaygın olarak kullanılan temel bir yazılım geliştirme tekniğidir. Sınıf dışından özel veri üyelerine erişimi kısıtlar. Ancak, arkadaş işlevi olarak bilinen bir C++ özelliği, veri gizleme ilkesine aykırıdır.

Bu makalede, C++'da friend işlevinin ne olduğunu, bir friend sınıfının ne olduğunu öğrenecek ve örneklerle bazı kullanım örneklerini keşfedeceksiniz.

Rekabette üstünlük sağlamak için ücretsiz teknoloji kurslarımıza göz atın.

İçindekiler

C++'daki arkadaş işlevi nedir?

C++'daki bir arkadaş işlevi, bir sınıfın dışında bildirilen ancak sınıfın özel ve korumalı üyelerine erişimi olan bir işlevdir. Belirli bir sınıfın özel üyeleri, üye olmayan işlevler tarafından erişilemez olsa da, bunları arkadaş işlevleri olarak bildirmek, onlara sınıfın özel ve korumalı üyelerine erişim sağlar.

UpGrad'ın DevOps'taki Gelişmiş Sertifikasyonuna göz atın

Arkadaş Fonksiyonunun Özellikleri

C++'daki arkadaş işlevi aşağıdaki özelliklere sahiptir:

  • Arkadaş işlevi, arkadaş olarak ilan edildiği sınıfın kapsamı dışındadır.
  • Bir arkadaş işlevi, bir sınıfın üyesi veya sınıfın kapsamı dışında bildirilen bir işlev olabilir.
  • Arkadaş işlevi tek bir sınıfla sınırlı değildir.

Popüler Yazılım Mühendisliği Kurslarımızı Keşfedin

LJMU ve IIITB'den Bilgisayar Bilimleri Yüksek Lisansı Caltech CTME Siber Güvenlik Sertifika Programı
Tam Yığın Geliştirme Eğitim Kampı Blockchain'de PG Programı
Tam Yığın Geliştirmede Yönetici PG Programı
Tüm Kurslarımızı Aşağıdan Görüntüleyin
Yazılım Mühendisliği Kursları

  • Bir arkadaş işlevini çağırmak, nesneyi kullanmadan sınıfın herhangi bir normal işlevini çağırmak gibidir.
  • Sınıf kapsamında olmadığı için nesneyi kullanarak arkadaş işlevini çağıramıyoruz.
  • C++'daki arkadaş işlevlerinin argüman olarak nesneleri vardır.
  • Özel veya genel bölümde bir arkadaş işlevi ilan edebiliriz.
  • Üye adlarına bir arkadaş işlevi tarafından doğrudan erişilemez ve üye adıyla nokta üyelik operatörünü ve nesne adını kullanması gerekir.

upGrad'ın Siber Güvenlikte Gelişmiş Sertifikasına göz atın

Arkadaş İşlevinin Sözdizimi

Arkadaş fonksiyonunu bildirmek için, sınıfın gövdesinde friend anahtar sözcüğünü kullanırız. Arkadaş işlevinin sözdizimi şöyledir:

class className {

… .. …

arkadaş dönüşType işlevAdı(arg listesi);

… .. …

}

İsteğe Bağlı Yazılım Geliştirme Becerileri

JavaScript Kursları Temel Java Kursları Veri Yapıları Kursları
Node.js Kursları SQL Kursları Tam yığın geliştirme Kursları
NFT Kursları DevOps Kursları Büyük Veri Kursları
React.js Kursları Siber Güvenlik Kursları Bulut Bilişim Kursları
Veritabanı Tasarım Kursları Python Kursları Kripto Para Kursları

Sözdizimini bozarsak, her bir terimin anlamı şudur:

  • arkadaş , işlevin bir arkadaş işlevi olduğunu belirten anahtar kelimedir.
  • returnType , işlevin dönüş türüdür
  • functionName , sınıfın dostu olan işlevin adıdır.
  • argüman listesi , ileteceğimiz argümanlardır

Dünyanın En İyi Üniversitelerinden Online Yazılım Geliştirme Kursları öğrenin. Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

C++ Arkadaş İşlevi Örneği

Şimdi, arkadaş işlevini gösteren bazı programlara bakalım.

Örnek 1: Bir kutunun yüksekliğini yazdırmak için C++ friend işlevi

#include <iostream>

ad alanı std kullanarak;

sınıf Kutusu

{

özel:

int yükseklik;

halka açık:

Kutu(): yükseklik(0) { }

arkadaş int printHeight(Box); //arkadaş işlevi

};

int printHeight(Kutu h)

{

h.yükseklik += 40;

dönüş h.yükseklik;

}

int ana()

{

kutu h;

cout<<“Kutu yüksekliği: “<< printHeight(h)<<endl;

0 döndür;

}

Yazılım Geliştirme ile ilgili Popüler Makalelerimizi okuyun

Java'da Veri Soyutlama Nasıl Uygulanır? Java'da İç Sınıf nedir? Java Tanımlayıcıları: Tanım, Sözdizimi ve Örnekler
OOPS'de Kapsüllemeyi Örneklerle Anlamak C'deki Komut Satırı Argümanları Açıklaması 2022'de Bulut Bilişimin En Önemli 10 Özelliği ve Özelliği
Java'da Polimorfizm: Kavramlar, Türler, Karakteristikler ve Örnekler Java'da Paketler ve Nasıl Kullanılır? Yeni Başlayanlar İçin Git Eğitimi: Git'i Sıfırdan Öğrenin

Çıktı:

Kutu yüksekliği:40

Örnek 2: C++ friend işlevi iki sınıfa dost olduğunda

#include <iostream>

ad alanı std kullanarak;

// ileri bildirim

sınıf ClassQ;

sınıf SınıfP {

halka açık:

// numP'yi 12 olarak başlatacak yapıcı

ClassP() : numP(12) {}

özel:

int numP;

// arkadaş fonksiyon bildirimi

arkadaş int ekle(ClassP, ClassQ);

};

sınıf ClassQ {

halka açık:

// numQ'yu 1'e başlatacak yapıcı

ClassQ() : numQ(1) {}

özel:

int sayıQ;

// arkadaş fonksiyon bildirimi

arkadaş int ekle(ClassP, ClassQ);

};

// her iki sınıfın üyelerine erişin

int add(ClassP nesneP, ClassQ nesneQ) {

dönüş (objectP.numP + objectQ.numQ);

}

int ana() {

P sınıfı nesneP;

ClassQ nesneQ;

cout << “Topla: ” << add(objectP, objectQ);

0 döndür;

}

Çıktı:

Toplam:13

Yukarıdaki örnekte, Class P ve Class Q , her iki sınıfın özel verilerine erişim sağlayarak add() işlevini bir arkadaş işlevi olarak bildirmiştir. Ayrıca, Sınıf P içindeki arkadaş işlevi Sınıf Q kullanıyor.

Böylece, programda Q Sınıfının ileri bildirimini yapıyoruz.

Arkadaş İşlevini Uygulama

C++' da friend işlevi hakkında daha iyi bir fikir edinmek için , şimdi friend işlevini uygulayabileceğimiz iki yola bakacağız.

  1. Başka bir sınıfın yöntemiyle C++'da bir arkadaş işlevinin uygulanması

Arkadaş olarak ilan edilen başka bir sınıfın özel ve korumalı üyelerine erişmemiz gerektiğinde, C++'da bir arkadaş sınıfı ilan ederiz. Başka bir sınıfın tek bir üye fonksiyonunu arkadaş olarak ilan etmek de mümkündür.

sınıf sınıf_adı

{

arkadaş sınıfı friend_class;// arkadaş sınıfı bildiriliyor

};

sınıf arkadaş_sınıfı

{

};

Friends sınıfının yukarıdaki bildiriminde, friend_class içindeki tüm işlevler, class_name öğesinin friend işlevleridir .

İşte, başka bir sınıfın yöntemiyle arkadaş işlevlerinin uygulanmasını göstermek için basit bir örnek:

#include <iostream>

ad alanı std kullanarak;

a sınıfı

{

int p=4;

arkadaş sınıfı B; //arkadaş sınıfı

};

B sınıfı

{

halka açık:

geçersiz ekran (A & a)

{

cout<<”p'nin değeri:” <<ap;

}

};

int ana ()

{

bir;

Bb;

  1. göster (a);

0 döndür;

}

Çıktı:

p'nin değeri:4

  1. Küresel bir işlevi uygulama

Global bir arkadaş işlevi uygulamak, global sınıf bildiriminin tüm korumalı ve özel üyelerine erişmemizi sağlar. İşte bir örnek:

#include<iostream>

ad alanı std kullanarak;

sınıf alanı

{

int a;

int b;

int c;

halka açık:

geçersiz küme verileri (int x, int y, int z);

geçersiz ekran(void);

arkadaş geçersiz operatörü- (boşluk &s);

};

boşluk ::setdata (int x, int y, int z)

{

a=x; b=y; c=z;

}

boşluk alanı::display(void)

{

cout<<a<<” “<<b<<” “<<c<<“\n”;

}

void operatörü- (boşluk &lar)

{

sa =- sa;

sb =- sb;

sc = - sc;

}

int ana ()

{

uzay s;

  1. veri seti (9,2,3);

cout<<“s:”;

  1. Görüntüle ();

-s;

cout<<“-s:”;

  1. Görüntüle ();

0 döndür;

}

Çıktı:

s: 9 2 3

-s: -9 -2 -3

Yukarıdaki örnek programda, operatör- , sınıf kapsamında global olarak bildirdiğimiz arkadaş işlevidir.

C++'da arkadaş sınıfı nedir?

Şimdiye kadar oldukça açık olmasına rağmen, bir arkadaş sınıfı, arkadaş ilan edildiği sınıfın hem özel hem de korumalı üyelerine erişimi olan bir sınıftır.

Basit bir ifadeyle, bir sınıfın başka bir sınıfın özel ve korumalı üyelerine erişmesini istediğimizde C++'daki bir arkadaş sınıfı kullanılır.

Başka bir sınıfa arkadaş olarak bildirdiğimiz sınıfın üye işlevleri, arkadaş sınıfına arkadaş işlevleridir. Böylece, arkadaş işlevleri her iki sınıfı da birbirine bağlar.

Friend Sınıfının Sözdizimi

İşte C++'da bir arkadaş sınıfının sözdizimi:

R sınıfı; //ileri bildirim

sınıf P{

// Diğer Bildirimler

arkadaş sınıfı R;

};

sınıf R{

// Bildirimler

};

Yukarıdaki çizimde, Sınıf R, Sınıf P'nin bir arkadaşıdır. Sonuç olarak, Sınıf R, Sınıf P'nin özel veri üyelerine erişebilir. Ancak bunun tersi doğru değildir ve Sınıf P, Sınıf R'nin özel veri üyelerine erişemez. .

Ayrıca, kategorik olarak tanımlanmadan önce bir varlığın varlığını derleyiciye bildirmek için ileri bildirim verilir. Burada, derleyiciye varlığını bildirmek için ileri bildirimi kullanarak Sınıf R'yi bildiririz. İleri bildirim, Sınıf R'nin nesnelerini Sınıf P'de kullanmamıza izin verir.

C++'da arkadaş işlevinin kullanımı nedir?

Tartışmamızı özetleyerek, C++'da friend işlevinin iki temel kullanımına bakalım:

  • İlk olarak, bir sınıfın özel ve korumalı üyelerine erişmek istediğimizde arkadaş işlevini kullanırız. Bunu yapmak için genellikle o sınıfın nesnelerinin özel ve korumalı üyelere erişmesini isteriz. Ancak, friend işlevi, erişim elde etmek için işlevin bir sınıf üyesi olması gereken durumu ortadan kaldırır.
  • C++'da friend işlevinin başka bir kullanımı, operatör aşırı yüklemesidir. Aynı ada sahip ancak farklı sayılara ve bağımsız değişkenlere sahip işlevler, aşırı yükleme işlevleri olarak bilinir. C++'daki arkadaş işlevleri, operatör aşırı yüklemesinde kullanım bulur.

Bu durumda, işleç aşırı yükleme işlevi, friend anahtar sözcüğünden önce gelir ve bir işlev sınıfı kapsamı bildirir. Arkadaş işlevi tarafından aşırı yüklendiğinde, ikili operatörler iki açık argüman alırken, birli operatörler bir argüman alır. Arkadaş işleç işlevi uygulamasının sınıfın kapsamı dışında gerçekleşmesi dışında, ikili işleç işleviyle aynı şekilde çalışır.

Bu bizi C++'daki arkadaş işlevi ve kullanımları hakkındaki tartışmamızın sonuna getiriyor. Umarım bu, C++ bilginizi ilerletmenize yardımcı olur.

Ayrıca, kariyerinizi tam yığın geliştirici olarak başlatmak istiyorsanız, upGrad , IIIT Bangalore ile işbirliği içinde 13 aylık Yazılım Geliştirme - Tam Yığın Geliştirmede Uzmanlık alanında tamamen çevrimiçi bir Yönetici Lisansüstü Programı sunar .

Programın Öne Çıkanları:

  • Sektörle ilgili vaka çalışmaları ve ödevlere uygulamalı olarak maruz kalma
  • 450+ saat 360 derece eğitim
  • 10'dan fazla en iyi programlama aracı ve dili
  • Sektör danışmanlarıyla 1:1 Kariyer mentorluğu Oturumları
  • 7/24 öğrenci desteği

Özel upGrad avantajlarından yararlanmak için bugün kaydolun!

C++'daki arkadaş işlevi nedir?

C++'daki bir arkadaş işlevi, bir sınıfın üyesi olmayan ancak özel ve korumalı üyelerine erişimi olan bir işlevdir.

Bir arkadaş işlevini nasıl ilan edersiniz?

Bir arkadaş işlevi, bir sınıfın özel ve korumalı verilerine erişebilir. Bir arkadaş işlevi bildirmek için, sınıfın gövdesinde friend anahtar sözcüğünü kullanırız.

C++'da nasıl sınıf arkadaşı olunur?

C++'da bir sınıfı arkadaş sınıfı olarak ilan etmek için friend anahtar sözcüğünü kullanırız. Anahtar kelime, herhangi bir sınıfın, diğer sınıfların ve işlevlerin özel ve korumalı üyelerine erişmesine izin verir.