同一のクラス中で同名の変数と関数を宣言したらコンパイルエラーが出て、どうやら衝突してるみたいなんですが、
これって仕様なんですか?
また、変数、関数を別名にする以外の対処法があったら教えて下さい。

例:
class test {
int hoge;
public:
int hoge();
};