class Publicatie{
public:
    class Carte : public Publicatie{
    private:
        char* autor;
    };
    class Revista : public Publicatie{
    private:
        char* frecventa_aparitie;
        int numar;
    };
private:
    int cota;
    char* titlu;
    char* editura;
    int anul_aparitiei;
    int tiraj;
    Carte* c;
    Revista* r;
        public:
           //some methods...
}


这是代码,我要在Publicatie类中声明Carte和Revista类,并且需要有私有成员Carte和Publicatie。我真的不知道如何使用这些类进行继承设计。我在继承的标题中得到了一个错误:public Publicatie,我认为它将起作用,因为该类已经创建(即使尚未创建私有成员)。

最佳答案

您的设计是错误的。您正在尝试定义一个类,并且在该定义中,您尝试从其本身使用它;这是一个逻辑悖论。
从我从您的代码中可以理解的范围来看,您正在尝试创建一个名为Publicatie的类,该类表示出版物(或文章),并且它还有两个其他变体,分别名为CarteRevista。如果是这种情况,为什么Publicatie需要具有两个CarteRevista类型的私有成员?也许您可以从中删除这两个成员。
或者,您可以将他们的某些共享成员(例如titlutiraj和...)移动到另一个抽象类,然后定义PublicatieCarteRevista,以便所有它们从同一个父类继承。
希望这些工作。

07-26 09:35