widziałem następujące realizację operatora * następująco:Dlaczego powrócić const Rational zamiast Rational
class Rational {
public:
Rational(int numerator=0, int denominator=1);
...
private:
int n, d; // numerator and denominator
friend const Rational operator*(const Rational& lhs, const Rational& rhs)
{
return Rational(lhs.n * rhs.n, lhs.d * rhs.d);
}
};
Mam dwa pytania tutaj:
- Q1> dlaczego operator * musi zwrócić const Rational zamiast po prostu Rational
- Q2> kiedy zdefiniujemy funkcję przyjaciela, czy powinniśmy dbać o modyfikator dostępu?
Witaj Oli, bardzo dziękuję – q0987
Zwięzłe, informacyjne, dokładne. Dobra odpowiedź. –