C++ "Funktion akzeptiert keine 1 Argumente?

2 Antworten

int Main() {

soll wohl

int main() {

heissen. Für deine Funktion Test fehlt dir die Einbindung vom 'iostream' header und die Anweisung den Namespace 'std' zu verwenden.


}

return 0;

ist völlig fehl am Platz. Das return 0 gehört eigentlich am Ende in die main. Es ist kein Fehler das return 0 weg zu lassen, erzeugt aber eine unnötige Warnung.

Nun zum eigentlich erfragten Fehler:

Wert2 + 100 / *Wert2;

der Fokus liegt auf dem / * entscheide dich ob du nun multiplizieren oder dividieren willst. Du solltest an der Stelle auch noch Klammern setzen um Missverständnisse bei der Rechnung auszuschliessen.

Hinzu kommt, dass das so keinen Sinn ergibt. Du rechnest etwas, sagst aber C++ nicht was nun mit dem Ergebnis passieren soll.

PS: der Prototyp für deine void Rechnung fehlt.

Deine Funktion Test(int) ist unvollständig. Es wird ein return erwartet. Wenn du nichts zurückgeben möchtest, dann nutze void.

Da fehlt ein Prototyp für die Funktion Rechnung. Der Compiler weiß zu dem Zeitpunkt, zu dem er Test kompiliert, noch gar nicht, wie die Funktion Rechung aussieht.

In diesem einfachen Fall würde es auch reichen, die beiden Funktionsdefinitonen in der anderen Reihenfolge hinzuschreiben. Also erst Rechnung, dann Test


StefanHes 
Fragesteller
 23.02.2018, 19:17

Super Danke, wie müsste ich das denn dem Compiler vertraut machen für den Fahl des es komplizierter wird?

0
sebastianla  23.02.2018, 19:21

Ein Funktionsprototyp sieht im Prinzip aus wie die Funktionsdefinition selbst, nur ohne die { } mit dem Code drin, stattdessen ein Semikolon.

Also in deinem Fall

void Rechnung(int Wert2);

Muss außerhalb von Funktionen stehen und vor der ersten Funktion, die die betreffende Funktion aufruft.

1
KarlRanseierIII  23.02.2018, 20:02
@sebastianla

Nur ergänzend:

Ein echter Prototyp hat keine Parameternamen sondern nur Typen, weil sich auf diese nicht bezogen werden kann oder muß, es wäre also:

void Rechnung(int);

bereits vollständig als Deklaration des Prototyps.

2