今天介绍VectorSpace类,该类定义了矢量空间类,是Vector类的基类。该类为模板类具有三个模板参数:class Form,class Cmpt,int nCmpt,其中Form指明要创建Form类型的VectorSpace对象,Cmpt为该空间中元素的类型,nCmpt为空间中矢量的元素个数。
公有属性(public)
成员变量:
Cmpt v_[nCmpt];定义了公有的数据成员v_;因此对外该成员是公开的可以随意访
问。
构造函数(3个):
VectorSpace();默认构造函数
VectorSpace(Istream& is);丛输入流构造
VectorSpace(const VectorSpace<Form,Cmpt,nCmpt>& vs);复制构造函数
成员函数:
const Cmpt& component(const direction d) const; const VectorSpace对象的component
函数,将返回const的第d个元素的值。
Cmpt& component(const direction d); component成员函数的非const版本
void componet(Cmpt& c,const direction d) const; 完成c=v_[d];
void replace(const direction d,const Cmpt& c); v_[d]=c;
这里的direction也是一个类型,有typedef unsigned char direction;
成员操作符:
const Cmpt& operator[](const direction d) const;const版的下标操作符
Cmpt& operator[](const direction d);非const版的下标操作符
void operator=(const VectorSpace<Form,Cmpt,nCmpt>& vs);赋值操作符
void operator+=(const VectorSpace<Form,Cmpt,nCmpt>& vs); +=操作符
void operator-=(const VectorSpace<Form,Cmpt,nCmpt>& vs); -=操作符
void operator*=(const scalar s); *=操作符,与scalar的乘法操作
void operator/=(const scalar s); /=操作符,与scalar的除乘法操作
输入输出友元:
friend Istream& operator>><Form,Cmpt,nCmpt>(Istream & is,
VectorSpace<Form,Cmpt,nCmpt>& vs);输入友元
friend Ostream& operator>><Form,Cmpt,nCmpt>(Ostream & os,
VectorSpace<Form,Cmpt,nCmpt>& vs);输出友元
另外还有一个操作于VectorSpace对象的全局模板函数name:
template<class Form, class Cmpt, int nCmpt>
word name(const VectorSpace<Form, Cmpt, nCmpt>&);
其中word为一个对象表示一个单词,该函数将VectorSpace表示成一串字符的形式。
就到这了,明天继续!
评论