在类中没有找到重载的成员函数

error C2511 : overloaded member function not found in Class

本文关键字:重载 成员 函数      更新时间:2023-10-16

这是我收到的错误。

Error   4   error C2511: 'Vector<T> Menus::sortListBy(sortType,Vector<T>)' 
: overloaded member function not found in 'Menus'   z:documentsvisual 
studio 2010projectsoo_cwoo_cwmenus.cpp  410 1   OO_CW

我相信这与我试图使用一个包含在头中但似乎没有被转移到其他类的enum有关。

下面是所涉及的2个头和我正在努力的函数::

Menus.cpp:

 Vector<connections> Menus::sortListBy(sortType sortKey,Vector<connections> sortList){}

Menus.h

#pragma once
#include "std_lib_facilities.h"
#include "Airport.h"
class Journey;
#include <string>

typedef enum {BACK,FORWARD,INVALID,OPTIONS} result;
typedef enum {BOOK,VIEW,EXIT} firstChoice;

class Menus
{
public:
  Menus(void);
  ~Menus(void);
  firstChoice firstMenu();
  Airport bookingMenuFirst(Vector<Airport>);
  Airport bookingMenuSecond(Vector<connections>,Vector<Airport>);
  airlines bookingMenuThird(Airport,Airport,Journey&);
  string bookingMenuDate();
  bool showReciept(string,string,string,string,double,double,double);
  string showRecieptNames();
  void readReciept(string);
  void optionMenu(Journey);
  Vector<connections> sortListBy(sortType,Vector<connections>);
};

Journey.h

#pragma once
#include "std_lib_facilities.h"
#include "Airport.h"
#include <string>
#include "Menus.h"
enum sortType {PRICE,TIME} ;
class Journey
{
 public:
  Journey(void);
  ~Journey(void);
//accessors
  Airport getStart();
  Airport getEnd();
  string getDate();
  airlines getAirline();
  string getStringAirline();
  double getTime();
  double getPrice();
  sortType getSort();
  //modifiers
  void setStart(Airport);
  void setEnd(Airport);
  void setPrice(double);
  void setTime(double);
  void setAirline(airlines);
  void setDate(string);
  void saveBooking();
  void setSort(sortType);

private:
  Airport startAirport;
  Airport endAirport;
  double price;
  double time;
  string date;
  airlines airline;
  Vector<string> splitBy(string,string);
  sortType sortingBy;
};

menu .cpp头语句

#include "Menus.h"
#include "std_lib_facilities.h"
#include "Airport.h"
#include "Journey.h"
#include <string>
using namespace std;
  • enum sortType定义在Journey.h

  • 然而,在menu.h中不可见,并且在Menus类的定义中使用enum sortType作为成员函数Menus::sortListBy(sortType,Vector<connections>);声明中的输入参数。

  • Menus.h中去掉class Journey;的前向声明,代之以#include "Journey.h"

  • 删除Journey.h中的#include "Menus.h"

  • 应该没有问题,因为JourneyMenus之间没有循环依赖问题。