operator[] を右辺値と左辺値 時にふるまいを変えたい
ストリームプログラミングでは << と >> で、入力バッファ、出力バッファと
異なるバッファにアクセスができるが
oprator[] において、そういうことが出来ないだろうか?
理想形は、入力データを何らかの変換を行う hogeクラスについて
hoge[1] = 100; // この場合は 入力バッファにアクセス
int x = hoge[1]; // この場合は 出力バッファにアクセス
こういうことを行いたい。が やり方がわからない、出来ない
// 左辺値の場合はこちら
int& operator[]( const int n )
{
return( in[n] );
}
// 右辺値の場合はこちら
const int& operator[]( const int n ) const
{
return( out[n] );
}
と書いても、全部 int& operator[]( const int n ) の方が呼ばれてしまうし
もうちょっと勉強すればわかるかな?
Cの本を1から読み直そう。