0
爲什麼下面的用法給我一個錯誤:未定義引用「Environment :: self」 所以下面是我的測試用例和類是正好在它下面,標題和CPP: 測試:C++ int包裝類有不同的值比較不起作用
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;
}
是不是由行設置:bla = Environment :: CTE; – Anna
@Anna在類中聲明的'static'成員只有*聲明*存在,而不是*定義。*您仍然需要爲某個地方的變量(在.cpp文件中)定義(分配空間)。 C++不是Python,變量不會通過分配名稱而「彈入」。 – Angew