>>899
hogeは参照ではない。分解して書けば一目瞭然。
int& sample();
int hoge; // どう見てもint型です
hoge = sample();

> hogeが参照だったら hoge = 10 みたいに再定義できないと思うので、
int hogehoge = 0;
int& hoge = hogehoge; // hogeが参照だったら
hoge = 10; // 参照先のhogehogeに10が代入される