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...
}
这是代码,我宣布班内的类别Carte和Revista publicatie,我需要有私人会员点菜和Publicatie。我真的不知道如何用这些类继承设计。我在继承的标题中出现错误:public Publicatie,我认为它会起作用,因为该类已经创建(尽管它的私有成员尚未创建)。类内类 - 不完整类型是不允许的
确实,这是正确的,谢谢:)我知道这是一个糟糕的设计,我只是无法弄清楚正确的。 – Edeph 2013-03-28 11:36:36
具体来说,如果出版物是杂志(杂志),那么出版物是书籍或杂志(杂志),那么出版物(公开)类应该有2个说明书内的书(carte)。我认为这是设计原则的正确方法。你能建议一个更好的吗? – Edeph 2013-03-28 12:30:27
我认为最好的方法是在'Publicatie'中不包括'Carte'和'Revista'。而是从'Publicatie'继承它们,并将所需的成员或方法(如'numar')添加到它们。那么在你的代码中的任何地方,函数都需要'Publicatie'作为参数,使用'dynamic_cast'来检查它是否是'Cartie'或'Revista'或者它们都不是。看看如何做到这一点,看看[这个答案](http://stackoverflow.com/a/4704988/663036)。此外,此解决方案仅适用于具有虚拟功能的情况。 – sazary 2013-03-28 22:03:28