0
static void traverse_nodes (vector<Node*> sg) {
cout << "Type: " << sg[0].get_type() << "\n";
}
int main() {
vector<Node*> scene_graph;
scene_graph = {...};
cout << "Type: " << scene_graph[0].get_type() << "\n";
traverse_nodes(scene_graph);
}
回報閱讀:C++傳遞變量的函數變化取之於可變
Type: type_first
Type: unknown_type
在我實際的代碼我呼籲scene_graph get_type(),然後立即跳進traverse_nodes()和呼叫它再次在我寫在這裏的scene_graph的本地版本上。
你的矢量是指針的向量。複製它複製指針。你的解釋毫無意義。代碼中的其他地方可能還有一個錯誤需要修復,例如也許你的向量包含指向堆棧的懸掛指針。 –