1

この質問は、C++ Obj モデルの第 1 章を読んでいるときに出てきます。理解できない例を挙げてください。

作成者は、座標のタイプと数の両方を制御できるテンプレート クラスを定義したいと考えています。

コードは次のとおりです。

template < class type, int dim >
class Point
{
public:
   Point();
   Point( type coords[ dim ] ) {
      for ( int index = 0; index < dim; index++ )
         _coords[ index ] = coords[ index ];
   }
   type& operator[]( int index ) {
      assert( index < dim && index >= 0 );
      return _coords[ index ]; }
   type operator[]( int index ) const
      {   /* same as non-const instance */   }
   // ... etc ...
private:
   type _coords[ dim ];
};
inline
template < class type, int dim >
ostream&
operator<<( ostream &os, const Point< type, dim > &pt )
{
   os << "( ";
   for ( int ix = 0; ix < dim-1; ix++ )
      os << pt[ ix ] << ", ";
   os << pt[ dim-1 ];
   os << " )";
}

とはどういうindex < dim && index >= 0 意味ですか? インデックスはベクトルのようなコンテナですか?

なぜ彼はオペレーターをオーバーライドしたのですか?

4

1 に答える 1