C++ Dilinde Delegating Constructor
- Yusuf Hançar
- Aug 13, 2023
- 1 min read
C++ dilinde son yazılarımızda sınıf kavramı, özel üye fonksiyonlar ve kurucu işlevlerin farklı tasarımları ile kullanımlarına değinmekteyiz. Bu yazıların ama yapılacak tasarıma ve ihtiyaca göre dilin desteklediği yapıları kullanarak daha performanslı kod yazmaya destek olmaktır. Burada performans dediğimiz daha az kod ile daha verimli çıktı elde edebilmektir.
Bu yazımızda da bu performansı sağlayabilmek adına kod tekrarını azaltarak yapıcı fonksiyonun mantığını tek merkeze indirgeyerek sınıftaki değişiklikleri kolay yönetebilme için kullanılan 'delegating constructor' inceleyeceğiz. Bu özellik C++11 standartları ile dile eklenmiştir. Yani ihtiyaca göre oluşturulan kurucu işlevler arasında yönlendirme yapılarak ortak bir çağrı mantığı kurmak amaçlanacaktır.
class SmartCode{
private :
const int val;
public:
SmartCode(int x, int y, int z) : SmartCode (x * y * z) {}
SmartCode(int x, int y) : SmartCode (x + y) {}
SmartCode(int x) : val (x) {}
void show_value()const
{
cout << val << " ";
}
};
int main()
{
SmartCode sc{ 23 };
sc.show_value();
SmartCode sc_1{ 23, 24 };
sc_1.show_value();
SmartCode sc_2{ 1, 3, 5 };
sc_2.show_value();
return 0;
}
*****************************
AÇIKLAMA : her kurucu işlev çağrısında tek parametreli kurucu işleve çağrı yapılarak ilgili işlemler yapılmaktadır.
*****************************
CEVAP : 23 47 15
*****************************

Comments