, je vis la mise en œuvre suivante de l'opérateur * comme suit:Pourquoi revenir const rationnelle plutôt que rationnelle
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);
}
};
J'ai deux questions ici:
- Q1> pourquoi le * opérateur doit retourner const Rational plutôt que simplement Rational
- Q2> lorsque nous définissons une fonction d'ami, devrions-nous nous préoccuper du modificateur d'accès?
Bonjour Oli, merci beaucoup – q0987
Concis, informatif, précis. Bonne réponse. –