类型的操作数无效

Jua*_*uan 0 c++

我们来吧

gf.h

typedef unsigned short gf_t;
class GaloisField{
public:
 gf_t * gf_exp;
 gf_t * gf_log;
 int gf_extension_degree, gf_cardinality, gf_multiplicative_order;
 static gf_t gf_ord();
 static int gf_inv(int x);
Run Code Online (Sandbox Code Playgroud)

gf.cpp

 gf_t GaloisField::gf_ord(){
   return gf_multiplicative_order;
 }

 int GaloisField::gf_inv(int x){
   return gf_exp[GaloisField::gf_ord() - gf_log[x]]; //line 181
 }
Run Code Online (Sandbox Code Playgroud)

我收到消息:gf.cpp:181:错误:类型'gf_t'和'gf_t()(gf_t)'的无效操作数到二进制'operator-'.为什么这个?

mos*_*ald 5

由于gf_inv是静态函数,因此没有this指针.没有this,你无法访问gf_log.

我不知道为什么错误信息如此神秘.