全局函数如何调用类中的特定函数?

发布于 2024-10-31 11:28:56 字数 182 浏览 2 评论 0 原文

我有一个全局函数和一个包含几个成员函数的类,如下所示:

Function Vert() 在控制台上打印空白。

在调试时,我发现 Vertice1[i] 处的值为空,因此控制台上可能会出现空白。但 dispFileName 确实包含这些值。

我是否将值正确传递给向量?

//向量定义:

I have a global function and a class containing few member functions as per below:

Function Vert() is printing blank on console.

While debugging I found that the values at Vertice1[i] is null so may be its coming blank on the console. But dispFileName does contain the values.

Am I passing the values correctly to the vector?

//Vector Definition:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

陪我终i 2024-11-07 11:28:56

第一个 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 first for 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 a std::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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文