我遇到了两个错误,我完全不知道出了什么问题。
#ifndef ListElements
#define ListElements
#include "RentalObjects.h"
struct RentalList{
ObjectBase* content;
RentalList* Next;
};
#endif
我一直收到这个错误:
错误1错误C2143:语法错误:缺少&#39 ;;'之前' *'
错误2错误C4430:缺少类型说明符 - 假定为int。
RentalObjects.h文件具有ObjectBase类的声明,如下所示:
class ObjectBase{
protected:
char Make[16];
char Model[16];
int Year;
float PricePerDay;
Booking* Availability;
public:
void SetMake(char* value);
void SetModel(char* value);
void SetYear(int value);
void SetPrice(float value);
bool DisposeBookings();
bool Book(int Start,int End);
char* GetMake();
char* GetModel();
int GetYear();
float GetPrice();
~ObjectBase();
};
我很感激小费。
答案 0 :(得分:1)
声明指针或引用时,不需要整个类/结构定义。
而不是:
#include "RentalObjects.h"
struct RentalList {
ObjectBase* content;
RentalList* Next;
};
你可以这样做:
class ObjectBase;
struct RentalList {
ObjectBase* content;
RentalList* Next;
};
这可能会让你摆脱循环包含,这可能是造成你的问题的原因