我在测试代码时遇到了一个问题。
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
答案 0 :(得分:3)
它不匹配,因为您尝试定义的函数返回void
:
void Library::checkOutBook(std::string pID, std::string bID)
但是Library
类中的声明表示它返回std::string
:
std::string checkOutBook(std::string pID, std::string bID);
此外,删除函数标题中)
和{
之间的分号。