Error message prefix postfix decrement operator
I keep getting this error on this and I have no idea how to fix it:
prog.cpp:116:9: error: cannot decrement value of type 'NumDays'
Z = --add;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
#include<iostream>
#include<stdlib.h>
using namespace std;
class NumDays
{
private:
double hours;
double days;
public:
NumDays()
{
hours = 0;
days = 0;
}
NumDays (double h)
{
hours = h;
days = h/8;
}
void setHours(double h)
{
hours = h;
days = h/8;
}
double getHours() const
{
return hours;
}
void setDays(double d)
{
days =d;
hours =d/8;
}
double getDays() const
{
return days;
}
NumDays operator + (NumDays& b)
{
NumDays result;
result.setHours(this->getHours()+b.getHours());
return result;
}
NumDays operator - (NumDays& b)
{
NumDays result;
result.setHours (this->getHours()-b.getHours());
return result;
}
NumDays &operator ++()
{
this->setHours(this->getHours() + 1);
return*this;
}
const NumDays operator ++ (int)
{
NumDays result = *this;
this->setHours(this->getHours() + 1);
return result;
}
const NumDays operator -- (int)
{
NumDays result = *this;
this->setHours(this->getHours() - 1);
return result;
}
};
int main()
{
NumDays X(12), Y(8), Z, add, sub;
cout << "12 hours coverted to days ="
<< X.getDays() <<endl;
cout << "8 hours coverted to days ="
<< Y.getDays()<< endl;
add = X + Y;
sub=X-Y;
cout << "\nThe addition operator + : "
<< add.getDays() << endl;
cout << "The subtraction operator - : "
<< sub.getDays() << endl;
Z = ++add;
cout << "\n(++) The prefix increment operator : "
<< Z.getDays() << endl;
Z = add++;
cout << "The postfix increment operator (++) : "
<< Z.getDays() << endl;
Z = --add;
cout << "\n(--) The prefix decrement operator : "
<< Z.getDays() << endl;
Z = add--;
cout << "The postfix decrement operator (--) : "
<< Z.getDays() << endl;
system("puse");
return 0;
};
|
Last edited on
because you haven't defined this:
1 2 3 4 5 6
|
NumDays operator -- ()
{
NumDays result = *this;
this->setHours(this->getHours() - 1);
return result;
}
|
Also both your ++ give same result
Last edited on
Bless you. So simple, but I'm still new to this. thank a bunch!
const NumDays operator ++ (int) |
const NumDays operator -- (int) |
These should not return const NumDays, just NumDays
full disclosure: I've edited my previuos reply as well ;)
Topic archived. No new replies allowed.