0

入力ファイルから配列のベクトルを作成し、そのベクトルをメインにロードしようとしています。また、プログラム全体で同じベクトルを使用しようとしています。ただし、コンパイルすると、大量のエラー LNK2019 が発生します。これがどこで起こっているかについては考えがあると思いますが、その理由はわかりません。誰かが助けたり説明したりできますか?ありがとう!

     #include <iostream>
     #include <string>
     #include <vector>
     #include "Database.h"
     #include "Registration.h"
     #include "Competition.h"
     #include "Events.h"
     #include "CompPop.h"
     #include "PushRegistration.h"
     using namespace std;

     void main()
     {
         vector<Competition> myVector = CompPop();
         vector<Registration> myRegistration = PushRegistration();
         Database home(myVector, myRegistration);

         home.Menu();

         system("pause");
     }

1. vector < コンペティション > myVector 2. vector< 登録 > myRegistration

これらは私が得ているエラーメッセージです

エラー LNK2001: 未解決の外部シンボル "public: __thiscall Registration::~Registration(void)" (??1Registration@@QAE@XZ)

エラー LNK2001: 未解決の外部シンボル "public: __thiscall Database::~Database(void)" (??1Database@@QAE@XZ)

私の Compop ヘッダーは、ファイルから読み取り、コンテンツを競合のベクトルに格納します (私の PushRegistration ヘッダーに似ています)

      #pragma once

     #include <fstream>
     #include <sstream>
     #include <iostream>
     #include <string>
     #include <vector>
     #include "LogIn.h"
     #include "Registration.h"
     #include "Events.h"
     #include "Competition.h"
     using namespace std;

     vector<Competition> CompPop()
     {
         ifstream myfile("PSU Results.txt");

         string line, tcomp, tleader, tfollower, tevents, tplacement;
         vector<Competition> info;
         if(myfile.is_open())
         {
             int i = 0; // finds first line
             int n = 0; // current vector index
             int space;
             while(!myfile.eof())
             {
                 getline(myfile,line);

                 if(line[i] == '*')
                 {
                     space = line.find_first_of(" ");

                     tleader = line.substr(0+1, space);
                     tfollower = line.substr(space + 1, line.size());

                 }
                 else
                 {
                     if(line[i] == '-')
                     {
                         tcomp = line.substr(1, line.size());
                         Competition temp(tcomp, tleader, tfollower);
                         info[n] = temp;
                     }
                     else
                     {
                         if(!line.empty())
                         {
                             line = line;

                             space = line.find_first_of(",");
                             tevents = line.substr(0, space);
                             tplacement = line.substr(space + 2, line.size());
                             info[n].pushEvents(tevents,tplacement);
                         }
                         if(line.empty())
                         {
                             n++;
                         }
                     }
                 }
             }
         }
         else
         {
             cout << "Unable to open file";
        }

         myfile.close();

         return info;
     }

私の競争ヘッダー (私の登録ヘッダーに似ています):

     #pragma once

     #include <fstream>
     #include <sstream>
     #include <iostream>
     #include <string>
     #include <vector>
     #include "LogIn.h"
     #include "Registration.h"
     #include "Events.h"
     using namespace std;

     struct Competition
     {
     public:

        Competition(string compName, string lead, string follow)
         {
            Name = compName;
            Leader = lead;
             Follower = follow;
         }

         void pushEvents(string name, string place)
         {
             Events one(name, place);
             Eventrandom.push_back(one);
         }

         string GetName()
         {
            return Name;

         }

         string GetLeader()
         {
            return Leader;
         }

         string GetFollow()
         {
            return Follower;
         }

         string GetEvent()
         {
            return Event;
         }

         string GetScore()
         {
            return Score;
         }

         void Print()
         {
             cout << "Leader: " << Leader << endl;
             cout << "Follower: " << Follower << endl;
            cout << "Competition: " << Name << endl;
             cout << "Events and Placement: " << endl;

             for(vector<Events>::iterator pos = Eventrandom.begin(); pos !=                      Eventrandom.end(); ++pos)
             {
                 cout << pos->eventName << " " << pos->Placement << endl;
             }

             cout << endl;
         }

         ~Competition();

     private:
        string Name, Leader, Follower, Event, Score;

         vector<Events> Eventrandom;
     };

私の登録ヘッダー:

     #pragma once

     #include <iostream>
     #include <string>
     #include <fstream>
     using namespace std;

     #define MAX_LENGTH 7 
     #define MAX_DANCES 9

     class Registration
     {
     public:

         Registration();

         Registration(string confirmationCode, string follower, string leader, string comp, string level, string dance);

         void FirstTime();

         void infoFollower();

         void infoLeader();

         string gen_random(const int len);

         string Levels();

         string Dances();

         void Print();

              void print2Confirmation();

         ~Registration();

     private:

         string CCode, Follower, Leader, Name;
         string Level, Dance;

     };
4

1 に答える 1

1

エラーメッセージは非常に明確です。

未解決の外部シンボル "public: __thiscall Registration::~Registration(void)"

Registration::~Registration(void)Registrationクラスのデストラクタです。定義しましたか?

于 2012-04-29T05:22:29.123 に答える