2011-04-10 66 views
0

我有一个全局函数和一个类,它包含几个成员函数,如下所示:全局函数如何调用一个类中的特定函数?

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

在调试过程中,我发现Vertice1 [i]的值为空,所以可能会在控制台上显示空白。但是,dispFileName确实包含这些值。

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

//矢量定义:

+0

您是否收到任何错误或其他问题?什么? – vpit3833 2011-04-10 19:50:08

+0

你没有得到关于重新定义“v”变量的警告吗? – drewag 2011-04-10 19:52:40

+0

没有我没有得到错误...它只是不打印任何东西在控制台上的载体。调试后,我觉得矢量已经正确地形成了,但它没有任何值。我是否正确地将值传递给向量? – 2011-04-10 19:54:08

回答

3

第一for循环结束后,你有指针的向量顶点对象。但实际的顶点对象有超出范围,因为它们在第一个for循环的本地。所以你的指针在那个点无效,你会得到随机结果(在这种情况下,空字符串)。

这里我假设Graph<T, U>::Vertice1std::vector<Vertex<T, U>*>而不是涉及智能指针的东西。

最简单的解决方案是使矢量包含顶点对象,而不是指向顶点对象的指针。

+0

的警告是的,这里是我的Vertice1向量的定义:std :: vector *> Vertice1; – 2011-04-10 19:57:16

+0

我试图删除指针,但它给我打印时出错 - IntelliSense:表达式必须有指针类型 – 2011-04-10 20:02:04

+0

我得到“std :: cout <<(g1.Vertice1 [i]) - > Vert() << ENDL;”在第二个循环内。 – 2011-04-10 20:02:47

相关问题