访问对象内部的指针

Accessing pointers inside objects

本文关键字:指针 内部 对象 访问      更新时间:2023-10-16

我有一个名为立方体的对象,其中有一个顶点向量。在我的主要DX11项目中,我正在制作D3D11_SUBRESOURCE_DATA,以便创建顶点缓冲区。当我创建一个子资源时,我需要引用向量,如下所示:

subresourcedata.pSysMem=&顶点;

但现在顶点在一个对象中,我不知道如何做到这一点(立方体顶点不一样),对象是否必须是一个指针,这样我就可以使用->而不是。引用它们,或者有没有一种简单的方法来做我正在使用普通对象做的事情?

感谢

只需在类中添加一个访问器,即可将顶点公开为指针。所以,假设你有一个Vertex结构,类似于:

class CMyCube
{
    // ... blah blah
public:
    const Vertex* GetVertices() const { return &m_pVertices[0]; }
    // ... blah blah
private:
    std::vector<Vertex> m_pVertices;
};

然后你可以做:

pSubResource.pSysMem = pSomeCubeInstance.GetVertices();

您可以重载&操作人员

class cube
{
public:
    vertices* operator&() const { return &_vertices[0]; }
    std::vector<vertices> _vertices;
};

然后你可以这样做:

立方体c;

subresourcedata.pSysMem=.c;