今天介绍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表示成一串字符的形式。就到这了,明天继续!

评论