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);
}
返回:
Type: type_first
Type: unknown_type
在我的实际代码中,我在scene_graph上调用get_type(),然后立即跳转到traverse_nodes()并在本地版本的scene_graph上再次调用它,就像我在这里写的那样。
答案 0 :(得分:0)
在输入问题时实现了答案。
我必须通过引用传递矢量,如下所示:
static void traverse_nodes (vector<Node*>&) {
我相信这是因为否则编译器会尝试复制向量,但它不知道如何因为node是一个自定义结构/类而且我还没有为它定义赋值运算符。