C++如何获得返回引用并将refence保存为函数中的局部变量?

Ris*_*hiD 2 c++ pointers reference

我在一个类中有一个函数,它返回对成员变量的引用.

std::vector<uint8> & getBuffer() const
{
   return m_myBuffer;
}
Run Code Online (Sandbox Code Playgroud)

现在在另一个类中说我称之为这个方法:

int someFunction()
{
   std::vector<uint8> myFileBuffer = myFile.getBuffer();
}
Run Code Online (Sandbox Code Playgroud)

这一行调用vector的拷贝构造函数,使我成为一个本地缓冲区.我不想要这个,我怎样才能设置myFileBuffer来引用myFile.getBuffer().

我知道我可以通过指针做到这一点但是如果有可能的话想要使用引用.

谢谢.

Mar*_*ork 8

注意,因为你的成员方法是const,你应该返回一个const引用.

// Note the extra const on this line.
std::vector<uint8> const& getBuffer() const
{
    return m_myBuffer;
}
Run Code Online (Sandbox Code Playgroud)

因此,要通过引用使用返回值,请执行以下操作:

std::vector<uint8> const& myFileBuffer = myFile.getBuffer();
Run Code Online (Sandbox Code Playgroud)