次のミニ例を検討してください
// CFoo.hpp
class CFoo{
private:
static const double VPI = 0.5;
public:
double getVpi();
};
// CFoo.cpp
#include "CFoo.hpp"
double CFoo::getVpi(){
double x = -VPI;
return x;
}
// main.cpp
#include "CFoo.hpp"
int main(){
CFoo aFoo();
return 0;
}
プログラムを gcc バージョン 4.5.1 で並べると、エラーが発生しますCFoo.cpp: undefined reference to CFoo::VPI
。エラーは発生しません。
- VPI は否定されません
- 否定は次のように書かれます
double x = -1 * VPI;
- クラス CFoo の宣言と定義は同じファイルで行われます
このエラーの理由を知っていますか?