忍無可忍,我在C++上相對較新。我有一個向量的基類和派生類對象,但我無法訪問被存儲在向量中的派生對象繼承的數據成員
這是我的項目。我想本質上創建一個簡單的國際象棋遊戲。
我有一個基類遊戲幣,這我想最終會成爲一個抽象類(但現在它是不)
基類遊戲幣有一堆在它的數據成員: colorOfPiece,rankOfPiece,fileOfPiece等。它也有一個函數,void displayPieceInfo(),它通過cout簡單地在控制檯上顯示所有這些值。
我正計劃從這一個派生類派生。現在我有一個「白嘴鴉」子類。
我想在單個向量中添加各種類型的塊,所以我可以稍後使用迭代器遍歷它。
這是我遇到的問題。
vector<gamePiece> vectorOfAllGamePieces;
vector<gamePiece>::iterator itGamePieces;
我將一個Rook作爲第一個元素push_back作爲向量。所有的構造函數看起來都很好,初始化變量。然而,當我嘗試在第一個元素上運行顯示功能時,這些字符串是空的/單元化的。
itGamePieces=vectorOfAllGamePieces.begin();
itGamePieces->displayPieceInfo();
如果我將一個通用的gamePiece插入到vector中,所有東西都會正確顯示。
我是否允許使用混合類型的對象來創建這樣的向量 - 例如,派生類的對象,父類的對象,派生自同一個父類的第二個類的對象
如果是這樣,爲什麼你認爲數據成員的值沒有正確顯示,即使我已經在構造函數中設置了它們?
切片的樂趣。事實上,你並不具有基礎和派生的向量。該矢量只包含鹼基。 – Mat 2013-02-17 19:33:16