2012-04-19 5 views
6

Funktionsargumentnamen in Deklarationen (die sich höchstwahrscheinlich in der Headerdatei befinden) werden vom Compiler anscheinend vollständig ignoriert. Was sind die Gründe für die folgenden kompilieren mit Deklaration Version 1 oder 2?Warum sind Funktionsargumentnamen in C++ - Deklarationen unwichtig?


Implementierung

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

Erklärung - Version 1

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

Erklärung - Version 2

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

Es ist nicht mit dem Header zu tun, die Unterscheidung ist es, dass es eine Erklärung ist. –

+0

Guter Punkt. Frage bearbeitet Vielen Dank – learnvst

Antwort

11

Der Compiler muss nur wissen, welche Art von Argumenten die Methode erfordert. Es ist für den Compiler unwichtig, wie Sie sie aufrufen.

Der Compiler muss die Argumenttypen aus mehreren Gründen wissen:

  • entscheiden, welche Methode zu verwenden, wenn es Namen mehrere Methoden mit dem gleichen Verfahren sind
  • Entscheiden Sie, ob die Eingangsparameter gültig sind
  • Entscheiden Sie, ob die Parameter gegossen werden müssen
  • Entscheiden Sie, wie der CODE generiert wird, um die Methode aufzurufen und die Antwort zu verarbeiten

Ich schlage jedoch vor, die erste Header-Version zu verwenden. Es hilft anderen Entwicklern (und Ihnen), die Funktionen zu nutzen und zu wissen, welche Parameter welche Bedeutung haben.

1

Der einzige Grund, warum ich über diese Version denken kann 1 besser ist, ist die Lesbarkeit. Sie werden ignoriert, da sie für den Compiler keine Rolle spielen.

5

Da die Namen nichts beeinflussen, wird der Compiler außerhalb der Funktion ausgeführt.

6

Parameternamen sind nicht Teil der Funktionssignatur. Wenn Sie sie nicht verwenden, brauchen Sie nicht , um Namen sogar in der Funktionsimplementierung zu haben.

1

..wenn die Header in anderen Modulen enthalten sind, benötigt es nur die Typen, um den richtigen Code zu generieren. Die Namen sind oft nützlich und bequem, aber unbedingt notwendig.

Verwandte Themen