ben şöyle bir if-else bloğunda bir değişkeni bildirmek için çalışıyorum bir değişkenin belirtilmesi derlemek için:C bir if-else bloğu ++
driver.cpp:38: error: unused variable ‘player’
driver.cpp:40: error: unused variable ‘player’
driver.cpp:42: error: unused variable ‘player’
driver.cpp:45: error: ‘player’ was not declared in this scope
Herhangi bir fikir? Eğer { }
tarafından sınırlandırılmış bir kapsam, içinde bir statik değişkeni koyarsanız kapsam sona erdiğinde
doğrulamak için iddialarda kullanmamalısınız, ama senin tipin parametre alır bir fabrika yöntemini alarak sonunda bütün işaretçi/başvuru şaşırtıcı değişim önlemek olabilir düşündürmektedir ve ediyorum bir oyuncu * döndürür. Yani ana yönteminiz Oyuncu ve oyuncu = * getPlayerByType (argv [3]); ', ve getPlayerByType() 'daki' if 'ifadeleri, her biri doğrudan geri döner, böylece tüm bu yerel değişken çirkinlikten kaçınır. – bradheintz
@bradheintz: Bu tavsiye en ufak bir şekilde yardımcı olmaz (gerçekte, yanlış tavsiyelerde bulunarak cevabı karıştırır). OP'nin aslında söylediklerinizi tam olarak yapmaya çalıştığı açıktır (ve çözümünüzde bir işaretçi yerine bir referans döndürün). Ancak, buradaki sorunun tek liste haline getirilmiş versiyonunu yayınladı. Eğer bir cevap göndermek istiyorsanız, o zaman en azından soruya cevap vermemek için size olumsuz bir işaret verebiliriz. –
Nesnenin oluşturulmasının tek bir sorumluluk fonksiyonuna dönüştürülmesi, gereksiz bir yerel değişkenin ortadan kaldırılması ve ana() işlevinin daha taranabilir hale getirilmesiyle ilgili neyin yanlış olduğuna emin değilim - ama eğer benim tavsiyem "yanlış" demeyi daha kolay hale getirirse ya da Brian R. Bondy'nin iddiayı desteklemeden iyi bir şekilde "dağınıklığı" konusunda önerilen bir düzeltmeyi çağırmak için onunla geçin. – bradheintz