2016-11-07 7 views
-3

私の現在のクラスプロジェクトでは、変更できない以下のヘッダファイルが提供されました。 iostreamやstringを含むguardやincludeステートメントは含まれておらず、プログラムの実行時に "std :: string has not declared"というエラーがスローされます。代わりにそれを私のcppファイルに含める方法はありますか?私は解決策を探し求めてきましたが、ヘッダーファイルにインクルードするだけです。私はそれが私のヘッダーファイルに含めるほうがはるかに簡単だと知っていますが、私が言ったように、それを変更することは許されません。提供されたヘッダーファイルは#include <string>&変更できません。どのように私のcppファイルに含めることができますか?

struct Patient 
{ 
    int priority; 
    std::string name; 

    Patient(int _priority, std::string _name) 
    { 
     priority = _priority; 
     name = _name; 
    } 
}; 

class PatientQueue 
{ 
    public: 
    PatientQueue(); 
    ~PatientQueue(); // release memory and delete queue 
    int size(); 
    bool isEmpty(); 
    void enqueue(int priority, std::string name); 
    Patient* dequeue();  // returns pointer to patient record and removes from array 
    void printList();     // print the array 
    private: 
    void swap(int index1, int index2); // swap the contents in the array 
    Patient *waitlist[100]; 
    int lastIndex; 
}; 
+1

ちょうど 'の#include を配置 string.hの含まれるヘッダファイルH1を作成し、それが元のヘッダーの代わりにソースファイルが使用さh1であなたがheader.h

を怒鳴ります'そのヘッダのインクルード文の前に? –

+0

*しかし、私が言ったように、それを変更することは許されていません* - "ヘッダーファイルには適切なヘッダーが含まれておらず、ガードは含まれていませんが、変更する必要はありません" - うわー、あなたの先生は壊れやすい自我を持っていなければなりません。 – PaulMcKenzie

+0

冗談はありません。私たちはすべて、ヘッダーファイルに#include を追加する必要があると言いましたが、「コンパイルとファイルのリンクの順番とともに、ディレクティブとライブラリがどのように機能するかを知ることを奨励する必要があります。ドライバーやヘッダーファイルを変更する必要はありません。 Jeez。 – Sheila

答えて

0

関連する問題