0

次の使用法でエラーが発生するのはなぜですか: Undefined reference to "Environment::self" 以下は私のテストケースで、クラスはそのすぐ下にあり、ヘッダーと cpp: テスト:

Environment bla;
bla=Environment::CTE;
if(bla==1){
    printf("CTE!");
}else if(bla==Environment::PPE){
    printf("NO: its ppe");
}

ヘッダ:

class Environment{
public:
enum{CTE, PTE, PPE, LOCALHOST};
static int self;
bool operator==(const int& rhs)const;
Environment& operator=(const int &rhs);
};

そして CPP:

#include "Environment.h"

bool Environment::operator==(const int& rhs)const{
if (this->self ==rhs)
    return true;
return false;
}

Environment& Environment::operator=(const int &rhs) {
  if (this->self != rhs) {
  this->self=rhs;
}

  return *this;
}
4

1 に答える 1