Skip to main content
deleted 217 characters in body
Source Link
Juho
  • 3.6k
  • 20
  • 18

As in your previous question, your interface is still awkward. That is, if there's an add method, I fully expect that calling a.add(b) will mean that a results in a plus b. So in particular, the state of a will be changed.

For example, I would write add as:

ComplexNumber operator+=(const ComplexNumber& b) {
   real += b.real;
   imaginary += b.imaginary;
   return *this;
}

Similarly for the other three functions.

A user of your class will also find void printNumber(char mathOperator) weird. Indeed, why as a user of the class do I need to worry about such details meaning the parameter? The user will just want to get his/her complex number printed and not be forced to worry about such details. So such a function might make sense as a private workhorse (but do make it const and read more about const - it's good for you) that operator<< can call, as explained in another answer.

As in your previous question, your interface is still awkward. That is, if there's an add method, I fully expect that calling a.add(b) will mean that a results in a plus b. So in particular, the state of a will be changed.

For example, I would write add as:

ComplexNumber operator+=(const ComplexNumber& b) {
   real += b.real;
   imaginary += b.imaginary;
   return *this;
}

Similarly for the other three functions.

A user of your class will also find void printNumber(char mathOperator) weird. Indeed, why as a user of the class do I need to worry about such details? The user will just want to get his/her complex number printed and not be forced to worry about such details. So such a function might make sense as a private workhorse (but do make it const and read more about const - it's good for you) that operator<< can call, as explained in another answer.

As in your previous question, your interface is still awkward. That is, if there's an add method, I fully expect that calling a.add(b) will mean that a results in a plus b. So in particular, the state of a will be changed.

A user of your class will also find void printNumber(char mathOperator) weird. Indeed, why as a user of the class do I need to worry about such details meaning the parameter? The user will just want to get his/her complex number printed and not be forced to worry about such details. So such a function might make sense as a private workhorse (but do make it const and read more about const - it's good for you) that operator<< can call, as explained in another answer.

added 1 character in body
Source Link
Juho
  • 3.6k
  • 20
  • 18

As in your previous question, your interface is still awkward. That is, if there's an add method, I fully expect that calling a.add(b) will mean that a results in a plus b. So in particular, the state of a will be changed.

For example, I would write add as:

ComplexNumber operator+operator+=(const ComplexNumber& b) {
   real += b.real;
   imaginary += b.imaginary;
   return *this;
}

Similarly for the other three functions.

A user of your class will also find void printNumber(char mathOperator) weird. Indeed, why as a user of the class do I need to worry about such details? The user will just want to get his/her complex number printed and not be forced to worry about such details. So such a function might make sense as a private workhorse (but do make it const and read more about const - it's good for you) that operator<< can call, as explained in another answer.

As in your previous question, your interface is still awkward. That is, if there's an add method, I fully expect that calling a.add(b) will mean that a results in a plus b. So in particular, the state of a will be changed.

For example, I would write add as:

ComplexNumber operator+(const ComplexNumber& b) {
   real += b.real;
   imaginary += b.imaginary;
   return *this;
}

Similarly for the other three functions.

A user of your class will also find void printNumber(char mathOperator) weird. Indeed, why as a user of the class do I need to worry about such details? The user will just want to get his/her complex number printed and not be forced to worry about such details. So such a function might make sense as a private workhorse (but do make it const and read more about const - it's good for you) that operator<< can call, as explained in another answer.

As in your previous question, your interface is still awkward. That is, if there's an add method, I fully expect that calling a.add(b) will mean that a results in a plus b. So in particular, the state of a will be changed.

For example, I would write add as:

ComplexNumber operator+=(const ComplexNumber& b) {
   real += b.real;
   imaginary += b.imaginary;
   return *this;
}

Similarly for the other three functions.

A user of your class will also find void printNumber(char mathOperator) weird. Indeed, why as a user of the class do I need to worry about such details? The user will just want to get his/her complex number printed and not be forced to worry about such details. So such a function might make sense as a private workhorse (but do make it const and read more about const - it's good for you) that operator<< can call, as explained in another answer.

Source Link
Juho
  • 3.6k
  • 20
  • 18

As in your previous question, your interface is still awkward. That is, if there's an add method, I fully expect that calling a.add(b) will mean that a results in a plus b. So in particular, the state of a will be changed.

For example, I would write add as:

ComplexNumber operator+(const ComplexNumber& b) {
   real += b.real;
   imaginary += b.imaginary;
   return *this;
}

Similarly for the other three functions.

A user of your class will also find void printNumber(char mathOperator) weird. Indeed, why as a user of the class do I need to worry about such details? The user will just want to get his/her complex number printed and not be forced to worry about such details. So such a function might make sense as a private workhorse (but do make it const and read more about const - it's good for you) that operator<< can call, as explained in another answer.