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