将数组传递给构造函数参数并使用数组的值创建结构数组
Passing array into constructor parameter and creating an array of structs using the value of the array
我目前正在为将绘制到屏幕上的多边形编写 class。然而,我的问题是,我无法弄清楚如何从数组数组(其中包含整数,用于每个顶点的 x 和 y)创建结构数组。我正在通过构造函数传递这个数组。我假设我的错误与尝试将指针作为整数传递有关,尽管经过危险的研究后我似乎无法理解如何解决我的错误。我来自动态类型语言(主要是 Js 和 Python)的背景,这是我使用静态类型语言的第一个大型项目。非常感谢任何帮助。
struct Point {
int x , y;
};
class Polygon
{
private:
Point centre;
Polygon(int x, int y, int vertices[]) {
centre = {x, y};
struct Point points[sizeof(vertices)/sizeof(vertices[0])] = {vertices};
}
//etc....
};
//Example of how it will be called in main.cpp
int main{
Polygon polygon(0, 0, {{5,5}, {-5,5}, {5,-5}, {-5,-5}} );
}
这个怎么样?
struct Point {
int x , y;
};
class Polygon
{
private:
Point m_centre;
std::vector <Point> m_vec_vertices;
public:
Polygon(const Point& centre, const std::vector<Point> &vertices)
:m_centre(centre), m_vec_vertices(vertices) { }
//etc....
};
int main(){
Polygon polygon({0, 0}, {{5,5}, {-5,5}, {5,-5}, {-5,-5}} );
}
您在 Polygon
构造函数中定义了一个点 class,为什么不使用它来代替 x
和 y
对吗?
我目前正在为将绘制到屏幕上的多边形编写 class。然而,我的问题是,我无法弄清楚如何从数组数组(其中包含整数,用于每个顶点的 x 和 y)创建结构数组。我正在通过构造函数传递这个数组。我假设我的错误与尝试将指针作为整数传递有关,尽管经过危险的研究后我似乎无法理解如何解决我的错误。我来自动态类型语言(主要是 Js 和 Python)的背景,这是我使用静态类型语言的第一个大型项目。非常感谢任何帮助。
struct Point {
int x , y;
};
class Polygon
{
private:
Point centre;
Polygon(int x, int y, int vertices[]) {
centre = {x, y};
struct Point points[sizeof(vertices)/sizeof(vertices[0])] = {vertices};
}
//etc....
};
//Example of how it will be called in main.cpp
int main{
Polygon polygon(0, 0, {{5,5}, {-5,5}, {5,-5}, {-5,-5}} );
}
这个怎么样?
struct Point {
int x , y;
};
class Polygon
{
private:
Point m_centre;
std::vector <Point> m_vec_vertices;
public:
Polygon(const Point& centre, const std::vector<Point> &vertices)
:m_centre(centre), m_vec_vertices(vertices) { }
//etc....
};
int main(){
Polygon polygon({0, 0}, {{5,5}, {-5,5}, {5,-5}, {-5,-5}} );
}
您在 Polygon
构造函数中定义了一个点 class,为什么不使用它来代替 x
和 y
对吗?