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;
};
が動作していない、私はこの方法を持っている:私はこの方法を使用する場合演算子オーバーロードが<<データベースと呼ばれる別々のクラスでは
void showEmployees() {
int counter = 1;
for (Employee* e : data) {
cout << "\n["<<counter<<"]\n"<<e<<"\n";
counter++;
}
}
私はちょうどメモリアドレスを取得します。また、私は実装がヘッダーファイル内にあることを知っています(私はちょうど怠け者でした)。
私は効果のostreamオブジェクトに従業員を挿入できるように、私はここで、このアドバイスに従ったが、それはちょうど私のメモリアドレスを与える...私はostreamに&を返すことは私のアドレスが、私ドンを与えることを取得他に何ができるのか分かりません。
'cout <<" \ n ["<< counter <<"] \ n "<< * e <<" \ n ";" – songyuanyao