ゆき社長

シーゲンガーのお勉強 ゲームプログラマ、ゲーマー、色々!

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から読み直そう。