在类中没有找到重载的成员函数
error C2511 : overloaded member function not found in Class
这是我收到的错误。
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"
-
应该没有问题,因为
Journey
和Menus
之间没有循环依赖问题。
相关文章:
- C++ 中重载成员函数的问题
- 如何将重载成员函数作为参数传递?
- 在 GDB - C++ 中反汇编重载成员函数
- 重载'->'成员访问运算符
- 非虚拟重载成员函数
- 重载成员函数的成员函数指针
- 重载成员选择运算符
- 找不到 VS2010 重载成员函数
- 将重载+成员函数的结果发送到重载<<导致编译错误
- 在"着色器程序"中找不到 C++ 重载成员函数
- 为什么不从线程调用重载成员
- C++ 解释重载成员函数迭代器(int i = 0) 的构造"one liner":i(i) { };
- C++强制mem_fun选择一个特定的重载成员函数
- 具有重载成员函数的多线程处理
- 消除作为模板参数传递的重载成员函数指针的歧义
- 指向常量重载成员函数的指针
- 带有重载成员函数的C++std::mem_fn
- 如何在设计API时设计带有const和volatile的重载成员函数
- 递归重载"->"(成员访问)
- 重载成员函数访问元组和递归累加结果失败的原因