Kostruktor jest ok. Tylko używaj listy inicjalizacyjnej.
operator+: Biorąc pod uwagę, że to jest operator+, to... w życiu bym się nie spodziewał, że dodawanie będzie działać w ten sposób i na dodatek modyfikować jeden z operandów.
Pomijając to... Nie bardzo rozumiem dlaczego argument jest zwykłą referencją.
Zauważ też, że masz duplikacje kodu. Cały kod operatora+ sprowadza się do:
Useless Useless::operator+(Useless & f)const
{
return Useless(std::move(f));
}