是的,它确实指向MyClass实例中的矢量myVec。请参见下面的示例代码:
#include <cstdio>
#include <vector>
class MyClass {
std::vector<int> myVec;
public:
MyClass() {}
~MyClass() {}
std::vector<int>& getVector()
{
return myVec;
}
void printVector() const
{
for(std::vector<int>::const_iterator it = myVec.begin(); it != myVec.end(); ++it)
{
printf("%d ", *it);
}
printf("\n");
}
};
int main(int, char**)
{
MyClass item;
std::vector<int>* vec = &(item.getVector());
vec->push_back(1);
item.printVector();
return 0;
}
运行此程序将输出:
$ ./a.out
1
所以你可以看到,调用getVector()
返回从MyClass的实例myVec
一个参考,因为我们添加一个新项目通过vec
指针向量(vec->push_back(1)
)然后打印MyClass实例的向量,并且它显示我们添加的项目存在于myVec
中。
你为什么不试试? – user463035818