この質問は、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
意味ですか? インデックスはベクトルのようなコンテナですか?
なぜ彼はオペレーターをオーバーライドしたのですか?