Buradasın
C++ Mülakat Soruları: Fonksiyon Overloading ve Erişim Kontrolü
youtube.com/watch?v=hUawWztbuqoYapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, C++ mülakat soruları serisinin üçüncü sorusunun çözümünü içeren bir eğitim içeriğidir. Konuşmacı, bir C++ programlama sorusunun detaylı açıklamasını yapmaktadır.
- Videoda, aynı isimli ancak farklı parametre tiplerine sahip iki fonksiyonun (public ve private) aynı sınıfta bulunduğu bir durum ele alınmaktadır. Konuşmacı, function overloading kavramını açıklayarak, bu durumda hangi fonksiyonun çağrılacağını ve neden sentaks hatası oluştuğunu adım adım anlatmaktadır. Sonuç olarak, private fonksiyona yapılan çağrı erişim kontrolü hatası olarak değerlendirilirken, function overload resolution aşamasında double parametreli private fonksiyonun seçildiği belirtilmektedir.
- 00:02C++ Mülakat Sorusu Tanıtımı
- C++ mülakat soruları serisinin üçüncü sorusunun cevap ve açıklaması sunuluyor.
- Soruda "isim" isimli bir sınıfın public ve private fonksiyonları var, public fonksiyonun parametre değişkeni long double türden, private fonksiyonun parametre değişkeni double türden.
- Main fonksiyonu içinde "isim" sınıfı türünden bir değişken tanımlanmış ve yorum satırına alınmış şekilde ilk değişkeni ile "fan" fonksiyonu çağrılmış, argüman olarak 2,20 sabiti gönderilmiş.
- 01:11Function Overloading Kavramı
- Programcıların function overloading konusunda en fazla karıştırdığı noktalardan biri, function overloading var mı yok mu sorusunun cevabı ile overloading varsa hangi fonksiyon çağrılır sorusunun cevabıdır.
- Fonksiyonlardan birinin public, birinin private olması kapsamlarının aynı olduğu gerçeğini değiştirmiyor, scope'ları aynı fakat imzaları farklı olan aynı isimli fonksiyonlar bir yükleme overloading oluşturur.
- Main fonksiyonu içinde yapılan çağrıda önce isim arama yapılır, sonra konteks kontrolü yapılır, en son erişim kontrolü yapılır.
- 02:56Fonksiyon Çağrısı ve Sonuç
- Gönderilen argüman float türden olduğu için long double'a dönüşüm standart conversion, float'tan double'a dönüşüm ise promotion olarak gerçekleşir.
- Function overload resolution aşamasında, biri için yapılan dönüşüm promotion, diğeri için conversion ise promotion kazanır, bu nedenle çağrılması gereken fonksiyon sınıfın private fonksiyonu olan double parametreli "fan" fonksiyonudur.
- Son aşamada erişim kontrolü yapılacak, fonksiyon private olduğu için erişim kontrolü hatası verecek ve derleyici "sınıfın private fonksiyonuna çağrı yapıldığı için erişim hatası" mesajı verecektir.