我需要確定方法處理哪些屬性(字符串)。所以,我設計了我的方法如下。傳遞向量指針作爲方法的輸入
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'不是您傳遞的指針,而是它的副本。 –