If you really need to, I think friend functions as a last resort are better than the public function, but I think that we can avoid even that.