根據這個答案,看來以下代碼應該可以作業:
檔案板.h:
std::vector<std::shared_ptr<Piece>> pawnRow;
for (int x = 0; x < 8; x )
{
pawnRow.push_back(std::make_shared<Pawn>());
}
供參考 Pawn.h:
#include "Piece.h"
class Pawn : Piece
{};
相反,我得到:error: no matching function for call to 'std::vector<std::shared_ptr<Piece> >::push_back(std::shared_ptr<Pawn>)'
我在這里想念什么?我的最終目標是擁有一個可以呼叫函式的“片段”向量,這樣可以呼叫possibleMoveLocations()子類中的多載函式。
使用 C 20、gcc 版本 11.2.0 (MSYS2)、Windows 11
uj5u.com熱心網友回復:
根據@Barry 的評論,我必須Piece像這樣公開繼承:
#include "Piece.h"
class Pawn : public Piece
{};
之后編譯的代碼就好了!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/425947.html
