xfelem.h
上传用户:jtjnyq9001
上传日期:2014-11-21
资源大小:3974k
文件大小:1k
源码类别:

3G开发

开发平台:

Visual C++

  1. //
  2. //  File = xfelem.h
  3. //
  4. #ifndef _XFELEM_H_
  5. #define _XFELEM_H_
  6. #include <iostream>
  7. #include "pfelem.h"
  8. using namespace std;
  9. //#include "galfield.h"
  10. class GaloisField;
  11. class ExtenFieldElem
  12. {
  13. public:
  14.   ExtenFieldElem(void);
  15.   ExtenFieldElem(GaloisField*);
  16.   ExtenFieldElem(GaloisField*, int value);
  17.   bool EqualsZero();
  18.   //void operator=(const int);
  19.   void operator=(const ExtenFieldElem&);
  20.   friend ExtenFieldElem operator+( const ExtenFieldElem,
  21.                                const ExtenFieldElem );
  22.   friend ExtenFieldElem operator-( const ExtenFieldElem,
  23.                                const ExtenFieldElem );
  24.   friend ExtenFieldElem operator*( const ExtenFieldElem,
  25.                                const ExtenFieldElem );
  26.   //friend ExtenFieldElem operator/( const ExtenFieldElem,
  27.   //                             const ExtenFieldElem );
  28.   friend ostream& operator<< (ostream&, const ExtenFieldElem&);
  29.   friend class GaloisField;
  30.   PrimeFieldElem* Value;
  31.   //ExtenFieldElem* Value;
  32. private:
  33.   GaloisField* Field;
  34.   int FieldDegree;
  35. };
  36. inline void ExtenFieldElem::operator=(const ExtenFieldElem &right)
  37.   {
  38.   Field = right.Field;
  39.   FieldDegree = right.FieldDegree;
  40.   Value = new PrimeFieldElem[FieldDegree];
  41.   for(int n=0; n<FieldDegree; n++)
  42.     {
  43.     Value[n]=right.Value[n];
  44.     }
  45. }
  46. #endif //_XFELEM_H_