class Employee
{
public:
Employee(const string& fName, const string& lName, float salary) {
mSalary = salary;
mFirstName = fName;
mLastName = lName;
}
static Employee create() {
string input1, input2;
float sal;
cout << "Enter first name: ";
cin >> input1;
cout << "\nEnter last name: ";
cin >> input2;
cout << "\nEnter salary here: ";
cin >> sal;
cout << "\n";
Employee emp(input1, input2, sal);
return emp;
}
virtual void printStats() {
cout << "===============================================\n";
cout << "First name:\t\t" << mFirstName << endl;
cout << "Last name:\t\t" << mLastName << endl;
cout << "Salary:\t\t\t" << mSalary << endl;
}
friend ostream& operator<<(ostream& outFile, Employee& emp) {
emp.print(outFile);
return outFile;
}
virtual string getName() {
return mFirstName;
}
protected:
virtual void print(ostream& str) {
str << "Name: " << mFirstName << " " << mLastName << endl;
str << "Salary" << mSalary << endl;
}
string mFirstName;
string mLastName;
float mSalary;
};
In eigener Klasse namens Datenbank, habe ich diese Methode:Overloading operator << nicht funktioniert
void showEmployees() {
int counter = 1;
for (Employee* e : data) {
cout << "\n["<<counter<<"]\n"<<e<<"\n";
counter++;
}
}
Wenn ich diese Methode verwenden, bekomme ich nur die Speicheradresse. Auch ich weiß, dass die Implementierungen in der Header-Datei sind (ich war nur faul).
ich diesen Rat hier gefolgt, so dass ich effektiv Mitarbeiter in einen ostream-Objekt einfügen kann, aber es gibt mir nur eine Speicheradresse ... Ich, dass Ostream Rückkehr & mir eine Adresse geben, aber ich don Ich weiß nicht, was ich sonst noch tun könnte.
'cout <<" \ n ["<< counter <<"] \ n "<< * e <<" \ n ";' – songyuanyao