2013-11-21 37 views
1

我正在用C++編寫一段代碼,但實際上無法排序出一個問題,我試圖在父類中製作子類的對象,但這樣做我錯誤的地方,我繼承父類「未定義的基類」任何出路?如何在父類中製作子類的對象

#include "Item.h" 
#include "Borrower.h" 
#include "Librarian.h" 
#include "Clerk.h" 
class lib_management_system 
{ 
protected: 
    item *items_array; 
    borrower *borrower_array; 
    librarian *librarian_array; 
    clerk *clerk_array; 
    int items_count; 
    int borrower_count; 
    int clerk_count; 
    int librarian_count; 
//public members 
}; 

其中的項目,借款人,圖書管理員,業務員是子類此父類

+0

感謝您的回覆,關於如何在另一個類中創建當前子類的對象並繼承該類的父類,它會工作 – user2969426

+0

請顯示代碼片段,試圖解釋您想要執行的操作。 – Johan

+0

等一下,你說的「item」是lib_management_system?而一個職員是一個lib_management_system?或者你是否試圖製作一個lib_management_system OWN一個項目?目前還不清楚爲什麼你需要該項目等從lib_management_system繼承。... – Ross

回答

2

這往往是不好的設計的徵兆......

唯一覺得你可以做的,我甚至建議在此,除非某些資源管理的情況下,也許):

// Forward declaration 
class Child; 

class Parent 
{ 
public: 
    // Parent code 
    // ... 


    Child* _child; 
}; 

class Child : public Parent 
{ 
}; 
1

你不能做到這一點,你爲什麼要在其父創建子類的對象呢?

+0

恩,你爲什麼不能這樣做?我的編譯器似乎有不同的想法。 –

+0

你能告訴我一個理由嗎?它取消了繼承的哲學! –

+0

這是不好的設計,但它肯定是可能的。 –

相關問題