-1

以前にこの質問を投稿しました: Compiler Can't Find My Header?

locker.h をインクルードして問題を修正しましたが、別のヘッダーである SelfStorageList.h に問題があるようです。私はすべてのファイルが同じフォルダー (Visual Studio 2012 の Projects -> myfile フォルダー内) にあり、それらのパスを確認しました。

私の問題を与えるコードは次のとおりです。

#include "Locker.h"
#include "SelfStorageList.h"

void rentLocker(Locker e) {

if (isEmpty()) { //Issue here

}

}

isEmpty() 呼び出しは定義されていないと言われています。これは、SelfStorageList.h で次のように定義されています。

 #pragma once
 #include <string>
 #include <cstdlib>
 #include "Locker.h"

 using namespace std;


 class LockerNode{
 public:

Locker objLocker;
LockerNode *next;

LockerNode(){
    next=0;
};

LockerNode(Locker e, LockerNode *ptr=0){
    objLocker=e;
    next=ptr;
}
 };



 class SelfStorageList
 {

 private:
 LockerNode *head, *tail;


 public:

SelfStorageList(){
       head=tail=0;
}

LockerNode* getHead(){
    return head;
}

LockerNode* getTail(){
      return tail;
  }

void rentLocker(Locker e);


void dispLockers(bool vipOnly=0);


bool isEmpty(){
    return head==0;
}

 };

トライアル テストでは、ヘッド ポインタとテール ポインタも認識していないことが示されているように見えるため、残りの関数を含めました。ヘッダーを含めるのがなぜそんなに難しいのか、誰にも分かりますか? それらは間違いなくすべて同じ正しいフォルダーにあることを繰り返します。

役立つ場合は、さらにスクリーンショットを次に示します。

ここに画像の説明を入力

4

1 に答える 1

4

これらはインスタンス メソッドであるため、次の方法で実装する必要があります。

void SelfStorageList::rentLocker(Locker e) {
  if (isEmpty()) {

  }
}

また、コードのインデントに取り組むことを強くお勧めします。これにより、読みやすくなり、質問に答えやすくなります。

于 2013-06-08T17:35:16.313 に答える