yoklateknik mülakat

Oyun Geliştirme Ue Containers Strings Memory Mülakat Soruları

75 doğrulanmış Oyun Geliştirme Ue Containers Strings Memory mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Ue Containers Strings MemoryZorluk 1
Bir TArray, Add() çağrısı sırasında mevcut ayrılmış kapasitesinin ötesine büyümesi gerektiğinde ne olur?
  • aAdd() bir istisna fırlatır ve yeni eleman eklenmez.
  • bDaha büyük bir bloğa yeniden tahsis yapar ve elemanları taşır.
  • cAdd() hiçbir şey yapmaz ve sessizce false döner.
  • dYeni elemana yer açmak için en eski eleman atılır.
Açıklama:Boş kapasite kalmadığında TArray yeniden tahsis yapar: daha büyük bir bellek bloğu ister, mevcut elemanları oraya taşır, eski bloğu serbest bırakır ve ancak ondan sonra yeni elemanı ekler.
Ue Containers Strings MemoryZorluk 2
Bir TMap'e belirli bir sırayla beş anahtar-değer çifti eklersen, sonra birini kaldırıp map'i range-based for ile dolaşırsan, iterasyon sırası hakkında ne söyleyebilirsin?
  • aHer zaman ekleme sırasıyla eşleşir, sıralı bir ilişkisel container gibi.
  • bEleman kaldırılana kadar ekleme sırasıyla eşleşir, sonra ters döner.
  • cAnahtarın hash değerine göre, kesin artan sırada sıralıdır.
  • dEkleme sırasını garanti etmez; kaldırmalardan sonra değişebilir.
Açıklama:TMap, girdileri hash ile indekslenen dahili bir sparse array'de tutar; ekleme sırasını korumaz ve eleman kaldırmak mevcut girdilerin iterasyonda gezilme sırasını daha da değiştirebilir.
Ue Containers Strings MemoryZorluk 2
Bir UObject türevi pointer'ı neden bir TSharedPtr içine sarmamalısın?
  • aUObject'in zaten kendi yaşam süresi takibi vardır ve iki sistem birbirinden habersizdir.
  • bTSharedPtr yalnızca değer tiplerini tutabilir, sınıflara pointer'ları tutamaz.
  • cUObject türevi sınıflar derleme zamanında herhangi bir template'li taban sınıftan miras almayı yasaklar.
  • dTSharedPtr her zaman referans sayımını render thread'inde yapar ve UObject'leri bozar.
Açıklama:UObject'ler Unreal'in kendi garbage collector'ı tarafından izlenir; bu, TSharedPtr'ın bağımsız referans sayımından tamamen ayrıdır. İkisini karıştırmak, hiçbir sistemin diğerinin referanslarından haberdar olmaması anlamına gelir.
Ue Containers Strings MemoryZorluk 1
Unreal Engine'de FName öncelikle ne için tasarlanmıştır?
  • aUzun, kullanıcıya görünen paragraf metinlerini oluşturup değiştirmek için.
  • bOyuncunun seçtiği dile göre değişen yerelleştirilmiş metni saklamak için.
  • cSoket adı gibi hızlı, büyük/küçük harf duyarsız tanımlayıcılar için.
  • dArayüzde gösterilecek sayı ve tarihleri biçimlendirmek için.
Açıklama:FName, paylaşılan ve tekrarları elenmiş bir tabloda saklanan bir addır; sık karşılaştırdığın ya da aradığın hafif tanımlayıcılar içindir, gösterdiğin ya da değiştirdiğin metin için değil.
Ue Containers Strings MemoryZorluk 2
Büyük bir TArray<FVector>'ı bir fonksiyona const TArray<FVector>& olarak geçirmek, değer (by value) olarak geçirmeye neden tercih edilir?
  • aDeğer parametreleri iç yapıda her zaman ham pointer olarak geçirilir, bu yüzden gerçek bir fark yoktur.
  • bDeğer olarak geçirmek dizinin tamamını kopyalar; const referans bu kopyayı önler.
  • cconst referanslar, değer olarak geçirmenin aksine fonksiyon içinde dizi elemanlarını değiştirilebilir yapar.
  • dDeğer olarak geçirmek diziyi taşır ve çağıranın dizisini sonrasında boş bırakır.
Açıklama:TArray'in kopya kurucusu her elemanın derin bir kopyasını çıkarır. const referans parametresi bağlamak, yeni bir dizi oluşturulmadığı için bu ayırma ve kopyalamayı tamamen önler.
Ue Containers Strings MemoryZorluk 3
TArray<FVector> Points;
Points.Reserve(2);
Points.Add(FVector::ZeroVector);
FVector* First = &Points[0];
Points.Add(FVector::UpVector);
Points.Add(FVector::ForwardVector);
First->X = 5.0f;

First->X = 5.0f; satırı hakkında ne doğrudur?
  • aTanımsız davranıştır: üçüncü Add() yeniden tahsis yapabilir ve First serbest bırakılmış belleği gösterir kalır.
  • bPoints[0].X'i güvenle değiştirir, çünkü Reserve(2) dizinin bir daha asla yeniden tahsis yapmayacağını garanti eder.
  • cDerlenir ama hiçbir işe yaramaz, çünkü TArray elemanları ham bir pointer üzerinden değiştirilemez.
  • dHer zaman bunun yerine Points[1].X'i değiştirir, çünkü dizi ilk Add()'den sonra kaymıştır.
Açıklama:Reserve(2) yalnızca 2 eleman için kapasite garanti eder. İki Add()'den sonra dizi doludur; üçüncü Add() (toplam 3 eleman) bir yeniden tahsisi zorunlu kılar, First'i geçersizleştirir ve dereference işlemini tanımsız davranış yapar.

2850 soruluk Oyun Geliştirme bankasında kendini sına.

Mülakata başla