小编Lin*_*ney的帖子

在构造函数中初始化变量?

我正在尝试使用向量作为成员字段来设置对象。我设置了构造函数,据我所知它确实初始化了这个成员变量,但是当我尝试访问向量时出现错误,除非我在对象的函数调用中初始化它。我收到一条警告说

C26495: Variable 'Engy::Graphics::Shape2D::m_vertices' is uninitialized. Always initialize a member variable (type.6).

问题是,我确实在我的构造函数中初始化了它。我缺少什么重要的东西吗?这是我的代码:

类声明(头文件)

class Shape2D:Object
        {
            protected:
                std::vector<Vector> *m_vertices;
                int type = GL_QUADS;
            public:
                Shape2D(std::vector<Vector> vertices);
                Shape2D();
                void draw();
                void setVector(int index, Vector value);
                Vector getVector(int index);
                void translate(double x, double y);
                void createVector(int i, double x, double y);
                void createVector(double x, double y);
                void addVector(Vector value);
        };
Run Code Online (Sandbox Code Playgroud)

方法声明(.cpp 文件)

Shape2D::Shape2D(std::vector<Vector> vertices)
{
    std::vector<Vector> m_vertices = vertices;
}
Shape2D::Shape2D()
{
    std::vector<Vector> *m_vertices = new std::vector<Vector>;
}

void Shape2D::setVector(int index, …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance vector std glfw

-1
推荐指数
1
解决办法
97
查看次数

标签 统计

c++ ×1

glfw ×1

inheritance ×1

std ×1

vector ×1