我需要确定方法处理哪些属性(字符串)。所以,我设计了我的方法如下。传递向量指针作为方法的输入
void method1(std::vector<String> * myVector)
{
myVector = new std::vector<String>();
//do something;
myVector->push_things;
}
因此,我会像这样从topMethod()调用method1。
topMethod()
{
std::vector<String> * aVector = 0;
method1(aVector);
//process aVector to identify its contents;
}
现在,方法1()中的矢量myVector正在填充正常。但是它的内容无法用调用方法,即topMethod()。我不确定他们如何获得释放。我觉得我正在分配使用新的,所以他们应该在呼叫之后在呼叫者的位置理想..
请提供您的想法什么是错的。
“你正在分配一个指向你向量的指针的副本,而不是你传递的指针。” 因此,如果我在topMethod中创建了一个新的向量,然后将地址分配给包含指针的地址,那么它应该工作吗? method1(* vectorPTR) { vector newVector; vectorPTR =&newVector; } –
Pavan
复制发生的原因是您使用'按值传递'而不是'通过引用',否则它不会工作.'vectorPTR'不是您传递的指针,而是它的副本。 –