访问对象内的指针

时间:2013-12-05 16:09:16

标签: c++ pointers

我有一个名为cube的对象,我有一个顶点向量。在我的主要DX11项目中,我正在制作D3D11_SUBRESOURCE_DATA以创建顶点缓冲区。当我创建一个子资源时,我需要引用这样的向量:

subresourcedata.pSysMem =& vertices;

但是现在顶点在一个对象中我不知道怎么做(cube.vertices不一样),对象必须是一个指针,所以我可以使用 - >代替 。引用它们还是有一种简单的方法来做我正在使用普通对象做的事情?

由于

2 个答案:

答案 0 :(得分:3)

只需在类中添加一个存取器即可将顶点公开为指针。所以,假设你有一个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();

答案 1 :(得分:0)

你可以超载&amp;操作

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

    std::vector<vertices> _vertices;
};

然后你可以这样做:

立方体c;

subresourcedata.pSysMem =&amp; c;