簡體   English   中英

類內的結構

[英]Class inside a struct

我被兩個錯誤弄得頭昏腦脹,我完全不知道出什么問題了。

#ifndef ListElements
#define ListElements

#include "RentalObjects.h"

struct RentalList{
ObjectBase* content;
RentalList* Next;
};
#endif 

我一直都收到這個錯誤:

錯誤1錯誤C2143:語法錯誤:缺少';' 在“ *”之前

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

我將不勝感激。

在聲明指針或引用時,您不需要整個類/結構定義。

代替:

#include "RentalObjects.h"

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

你可以做:

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

這可能會使您脫離循環包含,這可能是導致您出現問題的原因

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM