通过c ++中的类引用访问变量

Jae*_*ebi 1 c++

我有一个c ++类,其中一部分在下面

class Node{
    public:
       vector<string> getNames() const;
    private:
        vector<string> names_;
};
vector<string> Node::getNames(){
    return names_;
}
Run Code Online (Sandbox Code Playgroud)

函数getNames()传递向量的副本.我如何修改我的类,以便我可以从我声明Node对象而不是传递副本的任何其他类引用'const reference'向量'?

GMa*_*ckG 6

试试这个:

class Node
{
    public:
       const vector<string>& getNames() const;

    private:
        vector<string> names_;
};

const vector<string>& Node::getNames() const
{
    return names_;
}
Run Code Online (Sandbox Code Playgroud)

一些事情:

  1. getNames()现在是一个const方法,因为Node不会在逻辑上改变.
  2. 作为常量引用返回,因此您不需要复制.