La fonction n'a pas besoin d'un pointeur.
Par contre, si l'utilisateur a un pointeur, il peut tout à fait l'étoiler pour nourrir la référence.
je complète mon exemple:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| class Bidule {
private:
int v;
public:
Bidule(int value) : v(value) {}
Bidule(Bidule const&) = default;
Bidule& operator=(Bidule const&) = default;
Bidule& operator+=(Bidule const& v) {v+= other.v; return *this;}
int value() const {return v;}
};
int value(Bidule const& b) {return b.value();}
inline Bidule operator+(Bidule const& a, Bidule const& b) {
return Bidule(a)+=b;
}
int main() {
Bidule a(1);
Bidule b(2);
Bidule c = a+b;
Bidule *d = new Bidule(4);
*d += c;
const int v = value(*d+*d);
delete d;
return v;
} |
PS: je n'utilise tellement plus delete qu'il a fallut que j'aille vérifier s'il y a besoin de parenthèses.
Partager