全局函数如何调用类中的特定函数?
我有一个全局函数和一个包含几个成员函数的类,如下所示:
Function Vert() 在控制台上打印空白。
在调试时,我发现 Vertice1[i] 处的值为空,因此控制台上可能会出现空白。但 dispFileName 确实包含这些值。
我是否将值正确传递给向量?
//向量定义:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
第一个
for
循环结束后,您将获得一个指向 Vertex 对象的指针向量。但实际的 Vertex 对象已经超出了范围,因为它们是第一个for
循环的本地对象。因此,您的指针此时无效,并且您将获得随机结果(在本例中为空字符串)。这里我假设 Graph::Vertice1 是一个
std::vector*>
而不是涉及 smart 的东西指针。最简单的解决方案是使向量包含 Vertex 对象,而不是指向 Vertex 对象的指针。
After the first
for
loop ends, you've got a vector of pointers to Vertex objects. But the actual Vertex objects have gone out of scope, since they're local to the firstfor
loop. So your pointers are invalid at that point, and you're getting random results (in this case, empty strings).Here I'm assuming that
Graph<T, U>::Vertice1
is astd::vector<Vertex<T, U>*>
rather than something involving smart pointers.The simplest solution is to make the vector contain Vertex objects, rather than pointers to Vertex objects.