是的,它確實指向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