沮丧 - 编译器无法在我的包含标题中找到一个函数

时间:2013-06-08 17:33:13

标签: c++ header

我之前发布过这个问题: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;
}

 };

我已经包含了其余的功能,因为试验测试似乎表明它不知道头尾指针。任何人都知道我为什么遇到包括标题在内的困难?我重申它们肯定都在同一个正确的文件夹中。

这是一个进一步的屏幕截图,如果它有帮助:

enter image description here

1 个答案:

答案 0 :(得分:4)

由于这些是实例方法,您必须通过以下方式实现它:

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

  }
}

此外,我强烈建议您处理代码缩进,这样可以让您更容易阅读并让人们回答您的问题。