Szukałem kodu źródłowego open source i zauważyłem, że dla niektórych metod, zamiast używać void dla typu zwrotu, użyli odwołania do tej klasy.Object reference vs Void return type dla metody
Przykład:
class Object
{
private:
float m_x;
public:
Object();
Object& setX(float x)
{
m_x = x;
return *this;
}
};
Normalnie, chciałbym napisać taką samą funkcję jak poniżej:
class Object
{
private:
float m_x;
public:
Object();
void setX(float x)
{
m_x = x;
}
};
Czy jest jakaś zaleta przy użyciu jednego nad drugim?
Dziękuję bardzo za odpowiedź. Nie zdawałem sobie sprawy, że możesz to zrobić w C++. – Xplane
Ten styl jest znany jako ["metoda łańcuchowa"] (http://en.wikipedia.org/wiki/Method_chaining) lub ["płynny interfejs"] (http://martinfowler.com/bliki/FluentInterface.html). –