Mülakat Soruları | Kod çıktısı -II

Mülakatlarda soruları bir kaç kısımdan oluşmaktadır. Bunlar arasında verimli kod yazma veya yazılan kodun çıktısının yorumlamada vardır. Bu nedenle bazı temel algoritmaları bilmek daha avantajlı ve başka problemler için ufuk açıcı olacaktır. Çift sayıları veya tek sayıları ekrana yazdıran programı...

Mülakat Soruları | Kod çıktısı -I

C++'da int gibi primitive bir veri türüne ilk değer verme işlemi int val = 3;  syntax'ının dışında farklı yöntemlerle de yapılabilir. Aşağıda resimde görüleceği üzere bizim bildiğimiz ilk değer verme dışında 3 farklı biçimde ilk değer verilebilir. Buradan asla şu sonucu çıkartmayalım: C++'da...

Rule INT#030 - Argument is pointer or array

Fonksiyon bildirimi yapılırken parametre olarak int *ptr demekle int ptr[] demek arasında pratikte bir fark yoktur. Buna rağmen uygulamada kodu okuyan - kodun bakımını yapan açısından bir fark vardır. Aşağıda olduğu gibi Foo fonksiyonunu gören kişi bu fonksiyonun dizi adresi istediğini anlayacaktır. parametre...

Rule INT#026 -

Türeyen sınıf içinde base sınıfla aynı isme sahip bir fonksiyon varsa dikkat edilmesi gereken bazı noktalar vardır: Base sınıf virtual ise override edip sanallık mekanizmasına dahil mi olunacak? Fonksiyon virtual değilse türeyen (derived) sınıfta using bildirimi yapılarak overload mı edilecek? Hiçbir...

Rule INT#027 - Türeyen sınıfta oveload edilmiş sanalllık mekanizması (base class's virtual function explicitly as virtual)

C++'da türemiş sınıflar (derived class) virtual fonksiyonu override ederek sanallık mekanizmasına dahil olurlar ve override ettiği fonksiyonda virtual olur. override edilmiş cry sanal fonksiyonu Yukarıda görüldüğü gibi Animal sınıfının (base class) cry() sanal fonksiyonu Dog sınıfı tarafından...

Rule INT#0XX - Class Interface

Rule INT#002 - Sınıfın sabit olmayan üye elemanlarının private yapılması (Declare non constant data member private) Bir sınıf tasarımı yapılırken sınıfın veri elemanlarına doğrudan erişim olması çok doğru bir tasarım mantığı değildir. Bu amaçla veri elemanlarına erişim veya değiştirme gibi durumlar için GetValueXXX() ile SetValueXXX() gibi iki fonksiyon tasarlanması daha doğru olacaktır. Constant...

Rule INT#021 - Sınıf türünden arguman geçilmesi (Pass arguments of class types by reference or pointer)

Bir fonksiyonun base sınıf türünden bir parametresi varsa bu durumda dikkat edilmesi gereken bazı noktalar vardır. Aşağıda verilen base ve derived sınıf yapısı üzerinden bu noktaları anlatmak gerekirse: Aşağıda yer alan AnimalCry() fonksiyonunun Animal türünden parametresi vardır. Fakat bu fonksiyona...