int Complex::im(){
return imaginary;
}
int Complex::re(){
return real;
}
....
//非メンバ関数
ostream& operator<<(ostream &out, const Complex &cNumber){
out<<"Complex:"<<cNumber.re()<<"+i "<<cNumber.im();
return out;
}

というような感じの関数があるのですが、これをコンパイルすると
「error: passing 'const Complex' as 'this' argument of 'int Complex::re()' discards qualifiers」
というメッセージが出てくるのですが、
re()の中でも im()の中でもメンバーには手をつけてないのにこのエラーが出るのはなぜなのでしょうか?