结构中的类

时间:2014-12-09 00:16:52

标签: c++ class struct

我遇到了两个错误,我完全不知道出了什么问题。

#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();
};

我很感激小费。

1 个答案:

答案 0 :(得分:1)

声明指针或引用时,不需要整个类/结构定义。

而不是:

#include "RentalObjects.h"

struct RentalList {
    ObjectBase* content;
    RentalList* Next;
};
你可以这样做:

class ObjectBase;
struct RentalList {
    ObjectBase* content;
    RentalList* Next;
};

这可能会让你摆脱循环包含,这可能是造成你的问题的原因