私のタイトルに記載されているように、コード内の静的メソッドを使用してファイルをコンパイルしようとしています。私computeCivIndex()
はユーザーから5つの入力を取得して計算を行い、float値を返そうとしています。
this.sunType
はJava構文用ですが、V ++の場合、両方が同じ名前の場合、それらをリンクするために何を使用する必要がありますか?
コードにgetterメソッドとsetterメソッドがあり、2つのコンストラクターが長すぎて投稿できません。
これは私のエラーです:
test.cpp:159: error: cannot declare member function ‘static float LocationData::computeCivIndex(std::string, int, int, float, float)’ to have static linkage
test.cpp: In static member function ‘static float LocationData::computeCivIndex(std::string, int, int, float, float)’:
test.cpp:161: error: ‘this’ is unavailable for static member functions
コード:
class LocationData
{
private:
string sunType;
int noOfEarthLikePlanets;
int noOfEarthLikeMoons;
float aveParticulateDensity;
float avePlasmaDensity;
public:
static float computeCivIndex(string,int,int,float,float);
};
static float LocationData::computeCivIndex(string sunType, int noOfEarthLikePlanets,int noOfEarthLikemoons, float aveParticulateDensity, float avePlasmaDensity)
{
this.sunType = sunType;
this.noOfEarthLikePlanets = noOfEarthLikePlanets;
this.noOfEarthLikeMoons = noOfEarthLikeMoons;
this.aveParticulateDensity = aveParticulateDensity;
this.avePlasmaDensity = avePlasmaDensity;
if(sunType == "Type O")
//and more for computation
}