2012-04-19 19 views
6

Bildirimde işlev argüman adları (büyük olasılıkla başlık dosyasında yer alır) derleyici tarafından tamamen yok sayılır. nedenleri nedenleri, aşağıdaki sürüm 1 veya 2 sürümlerini kullanarak derlemeye izin veriyor?Neden işlev argüman isimleri C++ bildirimlerinde önemsizdir?


uygulama

void A::doStuff(int numElements, float* data) 
{ 
    //stuff 
} 

beyanı - Sürüm 1

class A 
{ 
public: 
    void doStuff(int numElements, float* data); 
} 

beyanı - Sürüm 2

class A 
{ 
public: 
    void doStuff(int, float*); 
} 
+1

Bu, başlık ile ilgisi yok, bu bir deklarasyon olduğu anlamına geliyor. –

+0

İyi nokta. Soru düzenlendi. Teşekkürler – learnvst

cevap

11

Derleyicinin yalnızca yöntemin gerektirdiği bağımsız değişkenleri bilmesi gerekir. Derleyicinin onları nasıl çağırdığının önemi yok.

derleyici çeşitli nedenlerle bağımsız değişken türleri bilmesi gerekir:

  • giriş parametreleri geçerli olup olmadığını karar verin aynı yöntem adıyla çeşitli yöntemler olup olmadığını kullanılacak yöntemi karar
  • Parametrelerin dökümüne gerek olup olmadığına karar verin
  • Yöntemi çağırmak ve yanıtı yönetmek için KODU üretmeye karar verin ve yanıtı işleyin

Ancak, ilk üstbilgi sürümünü kullanmanızı öneririm. Diğer geliştiricilerin (ve kendinizin) fonksiyonları kullanmasına ve hangi parametrelerin hangi anlama sahip olduğunu bilmesine yardımcı olur.

1

Ben 1 iyi olduğunu sürümü hakkında aklınıza gelebilecek tek sebebi okunabilirliğin. Derleyici için önemli olmadıkları için yok sayılırlar.

5

Adlar hiçbir şeyi etkilemediğinden, derleyici bu işlevin dışında çalışır.

6

Parametre adları, işlev imzasının bir parçası değildir. Bunları kullanmadığınız sürece, fonksiyon uygulamasında bile isimlere sahip olmanız için 'un'a ihtiyacınız yoktur.

1

.. çünkü üstbilgiler diğer modüllere dahil edildiğinde yalnızca doğru kodu oluşturmak için türlere ihtiyaç duyar. Ae isimleri genellikle kullanışlı ve kullanışlı, ama kesinlikle gerekli nopt.

İlgili konular