Yazan : Şadi Evren ŞEKER
C++ dilinde, bir sınıfın tanımlanmasından önce kullanılması gerektiğinde, bu sınıfın prototipinin tanımlanması gerekir. Bu durumu aşağıdaki örnek üzerinden inceleyerek anlamaya çalışalım.
Yukarıdaki kodda, A ve B isminde iki adet sınıf tanımlanmıştır. Ayrıca bu sınıfların kullanıldığı bir adet main fonksiyonu bulunmaktadır.
A sınıfı ve B sınıfı özdeş olarak bir integer değişken bulundurmaktadır. Bu örnekte, s ismindeki değişken iki sınıfta da bulunuyor. Gerçek kodlamalarda durum farklı olabilir. Örnekte anlatılmak istenen iki adet değişkenin bulunmasıdır.
Problemimizde, A sınıfını ve B sınıfını parametre olarak alan ve bu iki sınıftan türetilen nesnelerin hangisinin büyük olduğunu karşılaştıran bir kod yazılması beklenmiş. Bu fonksiyonu yukarıdaki Buyuk olarak kodladık. Fonksiyona bakılırsa, iki parametresi olduğu ve bu parametrelerin tiplerinden birisinin A diğerinin B olduğu görülür.
Bu tanımlamada hemen dikkati çekebilecek bir problem. Henüz A sınıfı tanımlanmadan, A sınıfının bir değişken olarak kullanıldığı bu tarz bir fonksiyonun nasıl yazılacağıdır. Dikkat edilirse, fonksiyon, B sınıfı içerisinde kodlanmış. Dolayısıyla B sınıfı henüz kodlanmadan, A sınıfının kodlanması gerekiyor. Burada C++ dilinde, henüz tanımlanamayan değerlerin kullanılamayacağını hatırlayalım.
Bu problemin çözülmesi için, sınıfların birer prototipinin girilmesi gerekir. Yukarıdaki kodun 5. satırında görüldüğü üzere Class A; şeklinde bir satır yazılarak bu sınıfın ileride tanımlanacağı belirtilmiştir. Bir fonksiyon prototipi yazılır gibi, yukarıdaki kodda sınıf prototipi yazılmış ve sınıf tanımının ileride yapılacağı belirtilmiştir.
Okuyucu, dilerse bu satırı silerek kodun hata verdiğini görebilir.