错误 C2511:在类中找不到重载的成员函数

mwi*_*ild 3 c++ enums overloading visual-studio-2010

这是我收到的错误。

Error   4   error C2511: 'Vector<T> Menus::sortListBy(sortType,Vector<T>)' 
: overloaded member function not found in 'Menus'   z:\documents\visual 
studio 2010\projects\oo_cw\oo_cw\menus.cpp  410 1   OO_CW
Run Code Online (Sandbox Code Playgroud)

我相信这与我尝试使用包含在标头中但似乎没有转移到其他类的枚举有关。

这是所涉及的 2 个标题以及我正在努力解决的功能:

菜单.cpp:

 Vector<connections> Menus::sortListBy(sortType sortKey,Vector<connections> sortList){}
Run Code Online (Sandbox Code Playgroud)

菜单.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>);
};
Run Code Online (Sandbox Code Playgroud)

旅程.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;

};
Run Code Online (Sandbox Code Playgroud)

Menus.cpp 标题语句

#include "Menus.h"
#include "std_lib_facilities.h"
#include "Airport.h"
#include "Journey.h"

#include <string>

using namespace std;
Run Code Online (Sandbox Code Playgroud)

101*_*010 5

  • enum sortType定义在Journey.h

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

  • Menus.h删除前向声明class Journey;并将其替换为#include "Journey.h".

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

  • 应该没有问题,因为您在Journey和之间没有循环依赖问题Menus