在任何课程中都不匹配?

时间:2015-12-04 01:55:12

标签: c++

我在测试代码时遇到了一个问题。

   void Library::checkOutBook(std::string pID, std::string bID); {
   bool patronIDMatch = false, bookIDMatch = false;
   int bookOnFile=-1, patronOnFile=-1;
   for (int i=0; i<members.size(); i++) {
      if (pID==members[i].getIdNum()) {
         patronIDMatch=true;
         patronOnFile=i;
         break;
      }
      else continue;

这里的第一行,我收到以下错误:

  

Library.cpp:68:error:'void Library :: checkOutBook(std :: string,std :: string)'的原型与类'Library'中的任何一个都不匹配

     

Library.cpp:68:错误:在'{'token

之前预期的unqualified-id

但我匹配它,因为它出现在我的库类中

        //Library.hpp
    #ifndef LIBRARY_HPP
    #define LIBRARY_HPP
    #include <string>
    #include <vector>
    #include "Patron.hpp"

    class Library {

    private:
       std::vector<Book*> holdings;
       std::vector<Patron*> members;
       int currentDate;

    public:
       Library();
       void addBook(Book*);
       void addPatron(Patron*);
       std::string checkOutBook(std::string pID, std::string bID);
       std::string returnBook(std::string bID);
       std::string requestBook(std::string pID, std::string bID);
       std::string payFine(std::string pID, double payment);
       void incrementCurrentDate();
       Patron* getPatron(std::string pID);
       Book* getBook(std::string bID);
    };
    #endif

我该如何解决这个问题?

我被禁止更改头文件:(

编辑:

    void Library::returnBook(std::string bID); {

bool bookIDMatch = false;    string tempPatronID;    int bookOnFile = -1;    for(int i = 0; i

1 个答案:

答案 0 :(得分:3)

它不匹配,因为您尝试定义的函数返回void

void Library::checkOutBook(std::string pID, std::string bID)

但是Library类中的声明表示它返回std::string

std::string checkOutBook(std::string pID, std::string bID);

此外,删除函数标题中){之间的分号。