我期待着持有對象的矢量,其中將是子類。我想我可以通過聲明一個向量指針到基類(如vector<BaseClass*> db
),然後通過做一些類似db.pushback(new subclass)
(我的例子在下面的鏈接是一個觸摸)聲明它爲子類不同的,但沿着相同的路線);C++向量的子類,使用它來超載istream/ostream
是否有可能到多個子類存放在這個意義上我還是會需要定義每個子類一個新的載體?在給出的例子中,只有1個,但在我的程序中實際有四個。
如果是這樣,在我的重載>>在SubClass1中,會動態地將類型轉換爲BaseClass的工作,以調用在BaseClass中友好的重載>>。
編輯:
對不起,我不是我的問題的後半部分完全清楚。我應該擴大。
我有一個程序需要輸入,並將其分佈在各個類和子類中。它應該把輸入作爲Cin >> class;
,在這種情況下,我已經超載了>>操作符。
但是,當我將數據定義爲子類(第34行到第39行,第44行)時,它似乎將其稱爲BaseClass而不是Subclass。然後,它會調用第10行中Base類中定義的朋友函數,而不是第21行。
我並不完全確定我要出錯的位置。
理想的情況下,輸出應爲
Printing:Data
X = 1
Y = 2
1)這是可能的,而且是多態的點 – 2013-05-02 15:10:55
是的,你可以在此使用'的std :: VECTOR'方式。至於你的問題的其餘部分,你不完全清楚你想要完成什麼。 – Chad 2013-05-02 15:11:02
對不起。我會嘗試清除它現在。將編輯成問題 – 2013-05-02 15:11:48