ho visto la seguente implementazione dell'operatore * come segue:Perché tornare const razionale piuttosto che razionale
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);
}
};
ho due domande qui:
- Q1> il motivo per cui l'operatore * deve tornare const Rational piuttosto che semplicemente Rational
- Q2> quando definiamo una funzione amico, dovremmo preoccuparci del modificatore di accesso?
Ciao Oli, grazie mille – q0987
Conciso, informativo, accurato. Buona risposta. –