質問があります。
二次元座標のクラスを作っているのですが、
point.x(), point.y()でx,y座標を取得できると同時に
point[0], point[1]でもx, y座標を取得できるようにしたいのです。

そこで、メンバ変数の持ち方なのですが
class point{
...
private:
int x_, y_;
};
とするとx(), y()は簡単になりますが、
int operator[](size_t i){
if(i == 0) x_;
else if(i == 1) y_;
else // エラー処理
}
みたいになってしまいます。ポインタ + iの形を使えれば効率的になりそうですが、
x_, y_が連続した領域に配置される保証はない(?)と思うのでできません。

両方を効率良く実装するにはどのような方法を取ればよいでしょうか?