21 En Çok Okunan C++ Mülakat Soruları ve Cevapları [Yeni Başlayanlar İçin]
Yayınlanan: 2020-12-17Bugün bile, C++ 80'lerde olduğu kadar popüler. Bu genel amaçlı, derlenmiş ve çok paradigmalı (nesne yönelimli, prosedürel ve işlevsel) programlama dili, BT endüstrisinde, özellikle yazılım geliştirmede çok önemli bir rol oynar.
Dünya çapındaki geliştiriciler, sistem yazılımı, veritabanı yazılımı, gömülü yazılım, kurumsal uygulamalar, GUI tabanlı uygulamalar, derleyiciler, gelişmiş hesaplama ve grafikler, işletim sistemleri, tarayıcılar, oyunlar, bulut sistemleri vb. oluşturmak için C++ kullanır. Programlama dili.
Bu yazıda, Yazılım Geliştirme alanında kariyer yapmak istiyorsanız bilmeniz gereken 21 C++ mülakat sorusu listesi oluşturduk. Bu C++ mülakat soruları ve cevapları, konuyla ilgili buzları kırmanıza yardımcı olacak!
C++ Mülakat Soruları ve Cevapları
- “Sınıf” ve “Nesne”yi tanımlayın.
C++'da sınıf, farklı varlıkları, eylemleri ve özellikleri yansıtan kullanıcı tanımlı bir veri türüdür. Bir sınıf, işlevleriyle birlikte veri üyelerini içerir. Bu veri üyelerine ve işlevlere erişim, özel, genel ve korumalı olmak üzere üç değiştirici tarafından tanımlanır. Sınıflar bir veri tipi tanımlarken, veriyi tanımlamak yerine sadece veri yapısını belirtirler.
Bir nesne, bir sınıfın örneğidir. Bir kişiyi, yeri veya bir şeyi temsil edebilen bir çalışma zamanı varlığıdır.
Nesneler, veri üyeleri ve üye işlevleri üzerinde çalışır. Alanları, yöntemleri ve yapıcıları içerir. Örneğin, bir araba bir nesne iken, tekerlekleri, tasarımı, rengi, braketleri gibi çeşitli özellikleri sınıfının örnekleridir.

- "Erişim Belirteci" nedir?
Bir erişim belirteci, bir sınıfın üyelerine (işlevler ve değişkenler) sınıfın kapsamı dışından nasıl erişilebileceğini belirler. C++ üç tür erişim belirtecine sahiptir
- Private – Özel belirteç, sınıf üyelerine yalnızca bildirildikleri sınıf içinde erişilebileceği anlamına gelir. Bu durumda, alt sınıflar, üst sınıfın özel üyelerine erişemez.
- Korumalı – Korumalı bir belirteç, alt sınıfların, üst sınıfın korumalı veri üyelerine erişmesine izin verir.
- Public – “public” olarak tanımlanan sınıf üyelerine bir C++ kodu aracılığıyla erişilebilir.
- Değişken depolama sınıfı belirteci nedir?
Değişken bir depolama sınıfı belirteci, sabit sınıf nesnesinin üyesini bildirerek değiştirmek için yalnızca bir sınıfın statik olmayan ve sabit olmayan üye değişkenleri için geçerlidir.
- Kapsülleme nedir?
Kapsülleme, veri üyelerini ve bunların işlevlerini bir sınıf içinde sarma veya bağlama anlamına gelir. Bu işlem, herhangi bir dış yöntemden erişimi kısıtladığı için güvenlik nedeniyle yapılır. Veri üyesi özelse, verilere yalnızca üye işlevi erişebilir.
- Soyutlama nedir?
Soyutlama, dahili uygulamaları gizleme ve yalnızca temel ayrıntıları gösterme sürecidir. Veri üyelerine ve işlevlere erişim, kullanılan değiştiriciye bağlıdır. Bu nedenle, üyeleri tanımlamak için genel bir anahtar kelime kullanılırsa, bunlara herkes tarafından erişilebilir. Ancak, üyeleri özel bir anahtar kelime tanımlıyorsa, onlara dış yöntemlerle erişemezsiniz.
- Ad Alanı nedir?
Bir ad alanı, bir kodun mantıksal olarak bölünmesini kolaylaştırır. C++ programlarında, tanımlayıcılara farklı ad alanları atayarak adlandırma çakışmasını önlemek/çözmek için kullanılır. Ad alanı, bir tanımlayıcının (değişkenler, sınıf ve işlevler) bildirildiği kapsamı tanımlar. Bu nedenle, bir ad alanı kullanmanın temel amacı, koddaki belirsizliği ortadan kaldırmaktır.
- “Polimorfizm”i tanımlayın. C++'da kaç çeşit polimorfizm vardır?
Kelimenin tam anlamıyla, polimorfizm, çoklu formların varlığı anlamına gelir. C++'da polimorfizm, aynı ad altında ancak çeşitli işlevlere sahip birden fazla işlev olduğunda ortaya çıkar.
Polimorfizm iki tiptir:
- Dinamik polimorfizm, yani C++'da "geçersiz kılma", derleme zamanı yerine çalışma zamanında hangi işlev yönteminin yürütülmesi gerektiğini belirlemenize yardımcı olur. İşlev geçersiz kılma, dinamik polimorfizmin mükemmel bir örneğidir. İşlev geçersiz kılmada, alt sınıf, üst sınıfta zaten var olan yöntemi içerir. Sonuç olarak, alt sınıf, üst sınıfın yöntemini geçersiz kılar. Bu durumda hem ebeveyn hem de alt sınıflar farklı tanımlarla aynı işlevi yerine getirir.
- Statik polimorfizm, kod derleme sırasında uygulanır (bu nedenle, derleme zamanı polimorfizmi olarak da bilinir). Yöntem aşırı yüklemesi, statik polimorfizmin mükemmel bir örneğidir. Yöntem aşırı yüklemesi, aynı ada sahip ancak farklı işlevlere sahip birden fazla işlevin varlığına izin verir.
- “Uçucu” anahtar kelimenin amacını açıklayın.
"Uçucu" işlevi, belirli bir değişkenin geçici olduğunu bildirmek için kullanılır. Bu, derleyiciyi değişkeni harici olarak değiştirmeye yönlendirir, böylece değişken referansında derleyici optimizasyonundan kaçınır.
Okuyun: Java Mülakat Soruları ve Cevapları
- Satır içi işlevi nedir?
İşlev tanımından önce önek olarak "inline" anahtar sözcüğüne sahip herhangi bir işlev, bir satır içi işlevdir. Öncelikle işlev çağrısı ek yükünü azaltmak için kullanılırlar. Bir satır içi işlev çağrıldığında, kodun tamamı ya satır içi işlev çağrısının belirli noktasında eklenir ya da değiştirilir. Derleyici satır içi işlevleri makro olarak ele aldığından, çok daha hızlı yürütülür. Bu nedenle, küçük satır içi işlevlerin bildirilmesi, kodun verimliliğini artırmaya yardımcı olur.

Bir satır içi işlevin standart sözdizimi şöyledir:
Satır içi dönüş tipi işlev adı(parametreler)
{
// Fonksiyon kodu buraya gelir
}
- "Bu" işaretçi nedir?
C++'da "bu" işaretçi, geçerli nesnenin bellek adresini içeren sabit bir işaretçidir. Tüm statik olmayan üye işlev çağrılarına gizli bir argüman olarak iletilir. Ayrıca, bu işaretçi, tüm statik olmayan işlevlerin gövdesi içinde yerel bir değişkene sahiptir.
Okuyun : SQL Mülakat Soruları ve Cevapları
- C++ bir dize ilkel veri türüne sahip mi?
C++ bir dize ilkel veri türüne sahip olamaz, bunun yerine Standart Şablon Kitaplığından (STL) bir sınıfa sahiptir.
- Kapsam çözümleme operatörünün işlevi nedir?
Kapsam çözümleme operatörü iki amaca hizmet eder:
- Global değişkenlerin kapsamını çözmeye yardımcı olur.
- Bir işlev bir sınıfın dışında tanımlandığında, kapsam çözümleme operatörü bu işlevi sınıfla ilişkilendirir.
- yıkıcı nedir?
Bir sınıfın üye işlevine yıkıcı denir. Adı, sınıf adıyla aynıdır, ancak önek olarak bir tilde sembolü (~) vardır. Bir nesne kapsamını kaybettiğinde, yıkıcılar otomatik olarak yürütülür.
- Anahtar kelime sınıfı ile anahtar kelime yapısı arasındaki farkı açıklayın.
Anahtar kelime sınıfı varsayılan olarak özel üyeleri temsil ederken, struct anahtar sözcüğü varsayılan olarak genel üyelere benzer.
- Bir Saf Sanal işlevi tanımlayın.
Saf sanal işlev, herhangi bir tanım içermeyen bir işlevdir. Yalnızca bildirimde 0 atayarak saf sanal işlevi bildirmeniz gerekir. C++'daki soyut sınıfların en az bir saf sanal işlevi vardır.
Saf bir sanal işlevin standart sözdizimi şöyledir:
sanal boşluk abc()=0; // saf sanal fonksiyon.
Check out: İş Görüşmenizde Öne Çıkmak için 15 Mülakat İpuçları
- Sınıf şablonunun amacı nedir?
Bir sınıf ve işlev ailesi oluşturmak için bir sınıf şablonu kullanılır. Örneğin, çeşitli türleri (int, float, vb.) içeren bir dizi oluşturmanıza izin verecek bir dizi sınıfı şablonu oluşturabilirsiniz. Ayrıca bir işlev için bir şablon da oluşturabilirsiniz. Yani, bir add() işlevi varsa, birden çok add() sürümü oluşturabilirsiniz.
- "Taşma Hatası" ne anlama geliyor?
Taşma hatası, matematiksel bir hesaplamanın çıktısı, sistem tarafından tahsis edilen gerçek alandan daha büyük olduğunda meydana gelen bir aritmetik hatadır.
- Silme ve silme[ ] nasıl farklıdır?
Silme işlevi, "yeni" operatörü kullanılarak tahsis edilen tek bir bellek birimini boşaltırken, sil[ ], yeni[ ] operatörü tarafından tahsis edilen tahsis edilen bellek dizisini serbest bırakır.
- C++'da vTable ve vptr'nin amacı nedir? Derleyici onlara nasıl davranır?
C++'da bir vTable, işlev işaretçilerini içerir. Öte yandan vptr, vTable'a atanan bir işaretçidir. Her sınıfın bir vTable'ı olsa da, her nesnenin bir vptr'si vardır. C++ derleyicisi, vTable ve vptr'yi etkin bir şekilde kullanmak ve sürdürmek için iki yere ek kod ekler:
Her kurucuda, yaratılan nesnenin vptr'sini ayarlamak ve bir sınıfın vTable'ına işaret etmek için.
Polimorfik bir işlev çağrısı olan kodda. Derleyici, temel sınıf işaretçisini/referansını kullanarak vptr'yi aramak için polimorfik bir çağrının bildirildiği her konuma kodu ekler. vptr elde edildikten sonra, türetilmiş sınıfın vTable'ına erişebilirsiniz. Türetilmiş sınıf işlevi show()'a erişmek ve çağırmak için vTable'ı kullanabilirsiniz.

- C++'da otomatik değişken nerede saklanır?
Tüm yerel değişkenler varsayılan olarak otomatik değişkenlerdir ve yığın belleğinde saklanır.
- DLL'den bir işlevi nasıl dışa aktarabilirsiniz?
DLL'den bir işlevi dışa aktarmanın iki yolu vardır:
- DLL'nin tür kitaplığını kullanabilirsiniz.
- DLL örneğinden işleve başvurabilirsiniz.
Dünyanın En İyi Üniversitelerinden Yazılım Mühendisliği Kurslarına Kaydolun . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Çözüm
Bu C++ soruları ve yanıtları, iş görüşmelerinde en sık sorulan sorulardan bazılarıdır. Yalnızca birkaç soru listelemiş olmamıza rağmen, bu size bir C++ görüşmesine nasıl hazırlanacağınız konusunda adil bir fikir verecektir.
Full-stack yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim, 9+ proje ve Full-stack Yazılım Geliştirmede Yönetici PG Programına göz atın. atamalar, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.
