Aufruf einer Funktion in main
Ich bin nur zu lernen C++ und ich habe einen kleinen code hier:
using namespace std;
int main()
{
cout<<"This program will calculate the weight of any mass on the moon\n";
double moon_g();
}
double moon_g (double a, double b)
{
cout<<"Enter the mass in kilograms. Use decimal point for any number entered";
cin>>a;
b=(17*9.8)/100;
double mg=a*b;
return mg;
}
Kompiliert, aber wenn ich es es nur druckt:
This program will calculate the weight of any mass on the moon
aber nicht ausführen moon_g
Funktion.
mögliche Duplikate von The Definitive C++ Book Guide and List
ich danke Ihnen allen für Ihre Hilfe!
also, der einzige Weg, um eine Funktion aufzurufen, die in c++ von der main-Funktion wird mit cout<<bestimmte Funktion?
Nein, natürlich nicht. Die Antwort zeigt, dass. Welches Buch benutzt du? Haben Sie Lesen Sie es noch?
ich danke Ihnen allen für Ihre Hilfe!
also, der einzige Weg, um eine Funktion aufzurufen, die in c++ von der main-Funktion wird mit cout<<bestimmte Funktion?
Nein, natürlich nicht. Die Antwort zeigt, dass. Welches Buch benutzt du? Haben Sie Lesen Sie es noch?
InformationsquelleAutor user3150381 | 2014-01-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Zeile:
nicht wirklich tun nichts, es nur besagt, dass eine Funktion
double moon_g()
vorhanden ist. Was Sie wollen, ist etwas wie dieses:Diese nicht funktionieren noch, weil Sie nicht haben, eine Funktion
double moon_g()
, was Sie haben, ist eine Funktiondouble moon_g(double a, double b)
. Aber diese Argumente sind nicht wirklich für nichts (gut, Sie sind, aber es gibt keinen Grund zu haben, Sie zu übergeben, als Argumente). So beseitigen Sie aus Ihrer Funktion etwa so:(Und deklarieren Sie die Funktion, bevor Sie es nennen.) Weitere Verfeinerungen sind möglich, aber das wird genug für jetzt.
InformationsquelleAutor Beta
Dies ist eine Funktion Erklärung:
dies ist nicht eine Funktion aufrufen, und wenn du hast es richtig ist, was bedeutet, dass das hinzufügen von zwei Parametern, da das ist, wie definieren Sie es unter:
es würde nicht funktionieren, weil Sie entweder verschieben müssen, um die definition von
moon_g
vormain
oder hinzufügen einer forward-Deklaration vormain
wie diese:Obwohl es scheint, wie
a
undb
sind nicht die Eingänge, sondern Werte, die Sie wollen, um wieder zurück zumain
dann würden Sie brauchen, um Referenzen verwenden, und es hätte deklariert werden müssen und die wie folgt definiert sind:Einen nützlichen thread zu Lesen, vor allem, wenn Sie heraus beginnen würde Was ist der Unterschied zwischen einer definition und einer Erklärung?.
Welchen compiler Sie verwenden einen Unterschied macht hier
clang
bietet folgende Warnung:während ich nicht bekommen kann
gcc
nochVisual Studio
zu warnen. Es ist nützlich im langen Lauf, um zu versuchen, code in verschiedenen C++ Compiler, wenn Sie können, es kann eine sehr lehrreiche Erfahrung, und Sie nicht haben, um Sie zu installieren, da gibt es viele online-C++ - Compiler verfügbar online.InformationsquelleAutor Shafik Yaghmour
Ist es ein riesiger Unterschied zwischen dem Aufruf einer Funktion und deklarieren Sie es genau wie es einen Unterschied zwischen lokalen Variablen und Funktionsargumente.
Schlage ich die Lektüre basic tutorials erste.
Sowieso, das ist, wie code Aussehen sollte:
Lage der main () - egal, die Lage der Funktionen, die Sie aufrufen von main() Fragen. C++ - source-code-Dateien kompiliert werden "Zeile für Zeile", so müssen Sie zunächst erklären, zumindest die header-Funktion, bevor Sie aufgerufen werden kann. In, zum Beispiel, C# solche details nicht wichtig, da es die moderne Sprache, während C/C++ ist immer noch das festhalten an alten Grenzen des 4KB ram, das nicht Lesen dürfen, die ganze Datei in den Speicher auf einmal. (Man könnte sagen, dass die split .h und .cpp macht den code besser klar zu Lesen, aber auf der anderen Seite erweiterte IDE-tools zum verwalten von code)
cplusplus.com oft ist hastig geschrieben und nicht tatsächlich überprüft. Es ist nicht ein wiki. Vermeiden Sie sich auf Sie verlassen.
InformationsquelleAutor PTwr
Gibt es zwei Probleme in deinem code.
Erstens, wenn Sie wollen rufen Sie Ihre Funktion
sollten Sie die beiden Parameter
a
undb
.Aber
a
undb
berechnet werden, die in den Körper der Funktion definition, es ist unnötig zu erklären, dass die beiden Parameter. Sie können schreiben, wie diese.Dann in der main-Funktion aufrufen function-Anweisung ist falsch. Möglicherweise möchten Sie erhalten den Rückgabewert. Also, sollten Sie den code schreiben, wie diese.
Schließlich ist es meist empfohlen, dass die Funktion aufgerufen wird von einem anderen, sollte die Funktion erklärt werden oder zuvor definiert wurden.
Oh, mein Fehler, sollten Sie erklären, die
a
undb
in der definition der Körper der Funktion statt, in der Argumente-Liste. Ich Editiere meinen code wieder. sorry für mein Fehler.Darüber hinaus
double ret = moon_g()
,ret
speichern der return-Wert berechnet, indem moon_g();InformationsquelleAutor Jeff