Да, это возможно. Типичным примером является перегрузка операторов, например operator + = ().
Например, если у вас есть класс с именем ComplexNumber, и вы хотите сделать что-то вроде a + = b, тогда вы можете
ComplexNumber& operator+=(ComplexNumber& other){
//add here
return *this;
}
В вашем случае вы можете использовать.
Foo& setX(int x){
//yada yada yada
return *this;
}