将Vector从一个类传递到另一个类进行操作

时间:2013-12-09 21:44:09

标签: c++ vector parameter-passing

我想获得矢量

std::vector< std::vector<int> > Ticket; 

从一个类(User)到另一个类(Game),以便操作那里的内容。

具体来说,我需要一个函数(compareNumbers)。

目前在main.cpp中我有这段代码:

#include "User.h"
#include "Game.h"

int k = game.compareNumbers(user.<int>Ticket);

(为简单起见,不必要的包含和其他代码遗漏)

在User.h中是vector(public)的声明,在User.cpp中填充了Vector。

我怀疑它更复杂,因为它是一个包含载体的载体,但我不确定。

在Game.cpp中我有

int Game::compareNumbers(std::vector< std::vector<int> > Ticket)
// Some code

我所提出的错误是“第一个&lt;成员名称'。在主要。 但是我怀疑还有更多的错误。

我想也许我应该通过参考传递,但我不确定。而且我不知道如何做到这一点,也可能是const,在compareNumbers中,我没有修改向量,纯粹将其内容与另一个向量的内容进行比较,再次,不确定?

1 个答案:

答案 0 :(得分:1)

假设您的user有成员Ticket,您可以使用

将此对象传递给Game::compareNumbers()函数
int = game.compareNumbers(user.Ticket);

当声明事情时,这将复制std::vector<std::vector<int> >,但这可能不是你想要的。如果你真的只是想查看数字(函数的名称表明你做了什么),你将使用const&传递对象:

int Game::compareNumbers(std::vector<std::vector<int> > const& Ticker) {
    // ...
}

如果compareNumbers()实际上需要修改其参数,则省略const但保留引用:如果没有引用,则传递和修改副本,这不会影响原始user.Ticket 1}}对象。