c++ - C++ 中的对象数组
问题描述
我正在尝试使用 openGL c ++ 下棋,现在我已经创建了 pawn 对象,它的构造函数采用 unsigned int 参数。因此,我尝试创建这些棋子的数组,而我发现这样做的唯一可行方法是:
Pawn *pawn[n];
for (int i = 0; i < n; i++) {
pawn[i] = new Pawn(Unsigned int var);
}
例如,要调用 pawn [0] 的函数,我必须这样做:
pawn[0]->function(parameters);
这是 Pawn 类:
class Pawn
{
private:
float vertices [16] = {
//position //text coord
-0.08f, -0.10f, 0.0f, 0.0f,
0.08f, -0.10f, 1.0f, 0.0f,
0.08f, 0.10f, 1.0f, 1.0f,
-0.08f, 0.10f, 0.0f, 1.0f
};
GLuint indices[6] {
0, 1, 2,
0, 2, 3
};
unsigned int shaderID, VBO, VAO, EBO, texture;
public:
glm::vec2 Position = glm::vec2(0.0f, 0.0f);
Pawn () {}
Pawn(GLuint shaderID) {
...
}
~Pawn() {
...
}
void setTexture();
void draw (glm::vec2 position);
};
我也试过这个:
Pawn pawn[8];
for (int i = 0; i < 8; i++) {
pawn[i] = Pawn(shaderID);
}
但是当我运行时它不起作用。
我想知道这种方法是否有效,如果有效,为什么有效,因为我不明白。谢谢你的帮助
解决方案
推荐阅读
- java - 连接拒绝主机:10.144.16.123 - 这个 IP 来自哪里?
- c# - 我可以在 DbContext 中定义列表而不映射到表吗?
- python - 在 Python 中动态创建数组数组
- c++ - 模板参数的有效对象
- reactjs - ReactJs/NextJS - 5 秒后自动重定向到另一个页面
- python - 如何循环遍历 Python 中的列名和每一行?
- c# - 在 C# 中,如何以支持 Reload 方法的方式从现有 JSON 字符串创建 IConfigurationRoot?
- package - 在 Lumen 中是否必须从供应商那里复制配置文件?
- excel - 基于其他工作表的VBA连接列
- python-3.x - 使用图像作为根背景和文本背景