gpt4 book ai didi

抽象类 vector 的C++ vector

转载 作者:行者123 更新时间:2023-11-27 23:38:08 25 4
gpt4 key购买 nike

对于一个简单的国际象棋游戏,我想创建一个(国际象棋)棋子 vector 的二维 vector 。所以我的课看起来像

class board {
private:
int width, height; //dimensions
vector<vector<piece> > pieces2D;

public:
board(int w=8, int h=8)
{
width = w; height = h;
vector<vector<piece>> pieces2D(w, vector<piece>(h, 0));
}

其中 piece 是一个抽象类,所以我不能使用数组。但是我无法在默认大小为 8x8 的构造函数中创建 pieces2D。缺什么?我也很欣赏其他存储 64(抽象)件的解决方案。

最佳答案

您无法实例化抽象类 - 因此您无法构造包含抽象类型的 vector 。

这里的解决方案是存储一个指针 vector : vector<vector<std::unique_ptr<piece>>>

关于抽象类 vector 的C++ vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57603980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com