Hello it's me again, I would like to know why do we have to use built in type of data as the driving operand in front of the + operator or any overloaded operator.
For example this code doesn't compile, since in the main function double is right from the operator +
Code:
#include <iostream>
using namespace std;
class Transaction
{
friend double operator+(double, Transaction);
private:
int idNum;
double payment;
public:
Transaction(double , int);
};
Transaction::Transaction(int id, double payment)
{
this->payment = payment;
idNum = id;
}
double operator+(Transaction trans, double payment)
{
double sum;
sum = payment + trans.payment;
return sum;
}
int main(void)
{
Transaction transOne(15, 12.6);
double sum = transOne + 5.2;
cout << sum;
return 0;
}
yet, If I put 5.2 left from the operator +, code executes correctly.
Code:
#include <iostream>
using namespace std;
class Transaction
{
friend double operator+(double, Transaction);
private:
int idNum;
double payment;
public:
Transaction(double , int);
};
Transaction::Transaction(int id, double payment)
{
this->payment = payment;
idNum = id;
}
double operator+(Transaction trans, double payment)
{
double sum;
sum = payment + trans.payment;
return sum;
}
int main(void)
{
Transaction transOne(15, 12.6);
double sum = transOne + 5.2;
cout << sum;
return 0;
}