-2

このエラーについて何日も調査とグーグル検索を行ってきましたが、これが c++ の多くの人にとって一般的な問題であることがわかっている限り、このエラーに対する明確な答えはまだ見つかりません。ファイルをリンクするとこれを修正できると読みましたが、これを行うためのコード例を見つけることができました。このコードの完成に近づいています。メイン ファイルからコンストラクターを呼び出す (または単純なオブジェクトを作成する) だけで十分ですが、「NamedStorm::NamedStorm() への未確認の参照」というエラーが発生し続けます。助けてください。

メイン.CPP

#include <iostream>
#include <string>

#include "NamedStorm.h"

using namespace std;

NamedStorm storm[2];

int main(){
   // NamedStorm Chris("Chris", 70.0, "T.S.", 990.0);
  // storm[0] = Chris;
    return 0;
}

NamedStorm.cpp

// CPP => Function definition
#include <string>

#include "NamedStorm.h"

using namespace std;

// Defining static variables
int NamedStorm::stormCount = 0;

// Constructor definition
NamedStorm::NamedStorm(std::string sName, double wSpeed, std::string sCat, double sPress){
    stormName = sName;
    windSpeed = wSpeed;
    stormCategory = sCat;
    stormPressure = sPress;
    stormCount++;
}

NamedStorm::NamedStorm(std::string sName){
    stormName = sName;
    stormCount++;
}

NamedStorm::NamedStorm(){
    stormName = sName;
    stormCount++;
}

// Destructor definition
//NamedStorm::~NamedStorm(){}

// Get (Accessor) function definition
int NamedStorm::getStormCount(){
    return stormCount;
}

double NamedStorm::getStormPressure(){
    return stormPressure;
}

string NamedStorm::getStormCategory(){
    return stormCategory;
}

string NamedStorm::getName(){
    return stormName;
}

// Set (Mutator) function definition
void NamedStorm::displayOutput(){}
void NamedStorm::sortByNames(){}
void NamedStorm::getAverageStormPressure(){}
void NamedStorm::getAverageWindSpeed(){}
void NamedStorm::getWindSpeed(){}

NamedStorm.h

#ifndef NAMEDSTORM_H_INCLUDED
#define NAMEDSTORM_H_INCLUDED

// NEVER use using namespce in header, use std instead.


class NamedStorm{
private:
    std::string stormName;
    std::string stormCategory;
    double maxWindSpeed;
    double stormPressure;
    static int stormCount;

public:

    // Constructor
    NamedStorm(std::string, double, std::string, double);
    NamedStorm(std::string);
    NamedStorm();

    // Destructor
    //~NamedStorm();

    // Get functions
    int getStormCount();
    double getStormPressure();
    double getWindSpeed();
    std::string getStormCategory();
    std::string getName();

    // Set functions
    static void displayOutput();
    static void sortByNames();
    static void sortByWindSpeed();
    static void getAverageWindSpeed();
    static void getAverageStormPressure();
};

#endif // NAMEDSTORM_H_INCLUDED
4

1 に答える 1