C++, valeur de Retour, référence, référence const

Pouvez-vous m'expliquer la différence entre le retour de la valeur de référence de la valeur, et const référence à la valeur?

Valeur:

Vector2D operator += (const Vector2D& vector)
{
    this->x += vector.x;
    this->y += vector.y;
    return *this;
}

Non-const référence:

Vector2D& operator += (const Vector2D& vector)
{
    this->x += vector.x;
    this->y += vector.y;
    return *this;
}

Const référence:

const Vector2D& operator += (const Vector2D& vector)
{
    this->x += vector.x;
    this->y += vector.y;
    return *this;
}

Quel est l'avantage de cette? Je comprends le sens derrière const référence en passant à la fonction que vous voulez vous assurer de ne pas modifier cette valeur de référence est de pointage à l'intérieur d'une fonction. Mais je suis confus par le sens du retour de la const de référence. Pourquoi le retour de référence est mieux que de retourner de la valeur, et pour lesquelles le retour de const référence est mieux que de retourner de non-const de référence?

  • double possible de votre C++ livre
InformationsquelleAutor Majak | 2014-02-14