这个问题是我在阅读 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
意思?索引是一个容器,如矢量?
他为什么要覆盖运营商?