FEHLER "cannot convert 'float' in 'float...'..."
Gibt es wahrscheinlich andere kleine Formatierungsfehler hier, die werde ich brauchen, um zu beheben, etc. was ich aber brauche Hilfe mit dem ist, was mit den folgenden:
Lab8pt1.cpp: In function 'float Gehalt(float, float)':
Lab8pt1.cpp:48: Fehler: Zuweisung der Funktion " float Gehalt(float, float)'
Lab8pt1.cpp:48: error: cannot convert 'float' in 'float ()(float, float)' Zuweisung
Lab8pt1.cpp:50: Fehler: Zuweisung der Funktion " float Gehalt(float, float)'
Lab8pt1.cpp:50: Fehler: cannot convert 'double' in 'float ()(float, float)' Zuweisung
Lab8pt1.cpp:51: Fehler: cannot convert 'float (*)(float, float)' in 'float' im Gegenzug
Ich weiß, es ist bezogen auf mein Gehalt-Funktion, aber ich bin mir nicht sicher, was das Problem mit meinem Schwimmer ist. Dies soll nur eine einfache Lab-Zuordnung, die uns lehrt, wie man Funktionen verwenden (wir haben nur den code schreiben, für die Funktionen, der rest wurde uns gegeben).
Hilfe, bitte! Vielen Dank im Voraus!
#include <iostream>
#include <iomanip>
#include <string>
using namespace std ;
void Header(void) ;
float Salary(float Hours, float Pay_Rate);
void Print_it(float Hours,float Pay_Rate,float Sal, float Tax_Rate, string Name);
void Read(float &hour, float &Pay_R,string &name) ;
bool Verify(float Hours, float Pay_Rate);
int main ( void )
{
float Pay_Rate, Hours, Sal, Tax;
const float Tax_Rate= (float)0.09 ;
string name;
Header();
for(int i = 0 ; i < 3 ; i++){
Read(Hours,Pay_Rate,name);
Sal = Salary(Hours,Pay_Rate);
Print_it(Hours,Pay_Rate,Sal, Tax_Rate,name);
}
cout<<"\n\n\n**********\t End of report \t*****\n\n\n\n";
return 0 ;
}
void Header( void )
{
string name;
cout << "Welcome, " << name << ", to the Salary Calculator: a program that will calculate your salary.";
return;
}
float Salary(float Hours, float Pay_Rate)
{
if( Hours <= 40 )
Salary = Hours * Pay_Rate;
else if( Hours > 40)
Salary = Hours * (Pay_Rate * 1.5);
return(Salary);
}
void Print_it(float Hours,float Pay_Rate,float Sal, float Tax_Rate, string Name)
{
cout << fixed << setprecision(2);
cout << "Name: " << left << setw(15) << Name << endl;
cout << "Hours worked: " << left << setw(15) << Hours << endl;
cout << "Pay rate: " << left << setw(15) << Pay_Rate << endl;
cout << "Tax rate: " << left << setw(15) << Tax_Rate << endl;
cout << "Salary: " << left << setw(15) << Sal << endl;
return;
}
void Read(float &hour, float &Pay_R,string &name)
{
cout << "Please enter your name: ";
getline(cin, name);
cout << "Please enter number of hours worked: ";
cin >> hour;
cout << "Please enter your pay rate: ";
cin >> Pay_R;
return;
}
bool Verify(float Hours, float Pay_Rate)
{
if( Hours < 0 || Hours > 60 || Pay_Rate < 0 || Pay_Rate > 500)
return false;
else
return true;
}
- Schauen Sie genauer auf Ihre
Salary
Funktion. Sie versuchen, weisen Sie den Wert, um zurück zu der eigentlichen Funktion. - Haben Sie kam aus
Pascal
zuC++
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Salary
ist der name der Funktion. Sie kann nicht zuordnen einen float-Wert zu. Sie müssen die Deklaration einer float-Variablen und return, die variable.In der Tat, Sie brauchen nicht dieses variable. Sie können direkt zurück in die if-else-block.
Beachten Sie, dass Methode und Variablennamen beginnen mit einem Kleinbuchstaben, Klassennamen beginnen mit Großbuchstaben. Dies ist weit verbreitet-Konvention.
dessen die Funktion, die Sie versuchen, um zurückzukehren.
gibt es keine variable Gehalt definiert in dieser Funktion
Korrigierte code: