Я имею Class NumDays
, как показано:Некорректное выход из перегруженного оператора << C++
Class NumDays
{
private:
double hours;
public:
NumDays() { hours = 0.0; } //default constructor
NumDays(double hr) { hr = hours; } //initializing constructor
//Large class, nothing of importance, rest of class omitted
//overloading << operator
friend ostream &operator<<(ostream &out, NumDays a);
}
У меня есть NumDay.cpp
, что включает в себя:
ostream &operator<<(ostream& out, NumDays a)
{
// takes amount of hours, computes to work days
int temp = a.hours/8;
//gives remainder of hours after full 8 hr workday.
double hrs = a.hours - (temp * 8);
//outputs
cout << fixed << setprecision(0);
out << (a.hours/8) << " Days, " << hrs << "hours";
return out;
}
И я main.cpp
включать:
int main()
{
// Initialized UDT object Declarations
NumDays hoursWorked_John; // Instantiate with Default Constructor
NumDays hoursWorked_Sue(36.9); // Instantiate with Initializing Cons
NumDays hoursUsed_Sue(4.5); // Instantiate with Initializing Cons
cout << "John's initial hours worked: " << hoursWorked_John << endl;
hoursWorked_John.addHours(56.78);
cout << " John's final hours worked: " << hoursWorked_John << endl;
cout << "Sue's initial hours worked: " << hoursWorked_Sue << endl;
//rest of main omitted for sake of size
Когда я иду запускать этот небольшой раздел программы, это моя консоль:
Любые мысли о том, почему часы Сью так сказочно неправильно, но Джон правильно?
Такая глупая ошибка. Спасибо, друг :) – Podo
Был ли этот неподходящий вопрос спросить? Я был опущен 3 раза. Вопрос важен, форматирование является хорошим. Я не мог найти ошибку, поэтому я счел нужным привести ее сюда ... – Podo