Пусть есть класс Foo:
class Foo
{
public:
void setBar(Bar bar);
Bar bar() const;
void someAction();
void anotherAction();
};
Модифицируем его API следующим образом:
class Foo
{
public:
Foo& setBar(Bar bar);
Bar bar() const;
Foo& someAction();
Foo& anotherAction();
};
Теперь вопрос к уважаемой публике. Какой API вам нравится больше? Другой вопрос: почему бы всегда вместо void возвращать *this/this? Вот в стандартной библиотеке есть цепочки методов, в том же std::string, но не все его методы возвращают *this. Какие будут соображения на этот счёт?