繁体   English   中英

将数组传递给构造函数参数并使用数组的值创建一个结构数组

[英]Passing array into constructor parameter and creating an array of structs using the value of the array

我目前正在为将绘制到屏幕上的多边形编写 class。 然而,我的问题是,我无法弄清楚如何从 arrays 数组(对于每个顶点的 x 和 y 保存整数)创建一个结构数组。 我通过构造函数传递这个数组。 我认为我的错误与尝试将指针作为 integer 传递有关,尽管经过危险的研究,我似乎无法弄清楚如何解决我的错误。 我来自动态类型语言的背景(主要是 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,为什么不使用它来代替xy对吧?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM