Merhaba,
çok dikkat etmeniz gereken bir yerde ölümcül bir hata yapıyorsunuz. İlk olarak aşağıda daha önce yazmış olduğunuz kodlarda herhangi bir miras işlemi bulunmamaktadır. Burada sadece basit bir atama işlemi bulunmaktadır.
// Miras mümkün değil
Text = "Test metni";
return Text;
Genel olarak söylemek gerekirse C++ programlama dilinde bir fonksiyonun aşırı yüklenmesi ile kastedilen;
- fonksiyon isminin tekrar kullanılabileceği,
- parametre tiplerinin değişebileceği,
- parametre sayılarının değişebileceği
gibi genel kuralları vardır. Ancak basit gibi gözüken bu konun arkasında çok önemli konularda bulunmaktadır. Mesela bir fonksiyon prototipi bile tanımlarken aşırı yüklenme konusu sizi yanıltabilir.
Aşağıdaki örnekleri inceleyin;
int test1(int * i);
int test1(int i);
int test1(int* i);
int test1(int &i);
int test1(int *i);
bunu yazdığımda benim derleyicim (Visual Studio 2013 Pro) bana sadece 3 adet aşırı yüklenmiş fonksiyon bildirimi yapmaktadır. Aslında gözüken farklıdır ve kullanım yerlerine göre hepsine ihtiyacınız olabilir. Size anlatmak istediğim şu; lütfen üzerinde durulması gereken konuları sadece özetini okuyarak atlayıp geçmeyiniz. Bir iki örnek ile konuyu kapatmayınız. C++ içerisinde detaylar çok önemlidir. Ve hatta yazdığınız kodlar sizce önemsiz olan sadece bir veya iki detay yüzünden üzerinde günlerce uğraşmak
zorunda kalırsınız veya bir firmada çalışıyorsanız başınızı ağrıtabilirsiniz bu yüzden.
Diğer yandan miras konusu zaten başlı başına üzerinde düşünülmesi ve çok iyi anlaşılması gereken ayrı bir bölümdür. Yine önceki yorumunuzda yazdığınız şu aşağıdaki kodlarda miras ile ilgili birşey göremiyorum. Bu konuyu burada açıklamak hem uzun ve hem de size bütün bilgileri buradan veremeyeceğim için yanıltıcı olmasını istemem. Dolayısıyla Türkçe kaynaklardan takip ediniz veya ingilizceniz yeterli ise yabancı kaynakların başlangıç seviyesinden uzman seviyesine doğru takip ediniz.
// Miras mümkün değil
Text = "Test metni";
return Text;
Eğer imkanınız var ise Türkçe güncel C/C++ kitabı alarak destek alın. Bunun size çok faydası olacaktır. Zamanla ilerleyecek ve kitap dışına çıkmak zorunda kalacaksınız ve sonunda kitaplarda bulunmayan bilgiler ile uğraşmış olacaksınız. Eğer konuları anlayarak geçip bitirirseniz.
Saygılarımla