【发布时间】:2018-02-11 16:18:17
【问题描述】:
这段代码解释了我想要做的一个例子:
class Object
{
public:
int data;
Object() : data(0) {}
Object(int data) : data(data) {}
};
int dataSum(vector<int>& dataReference)
{
int sum = 0;
for(int i = 0; i < dataReference.size(); i++)
{
sum += dataReference[i];
}
return sum;
}
int main()
{
vector<Object> myObject(5);
int mySum = dataSum(myObject.data); // this line does not work
return 0;
}
很明显,使 dataSum 成为 Object 的成员函数可以更容易地完成,但这不是我要问的。我怎样才能只引用 myObject.data?或者如果不能用引用来做,至少用指针做同样的事情。
编辑:有人告诉我这个问题不清楚。
我想要做的是引用myObject[i].data 的每个整数,将它们放在vector<int> 引用中。
也很抱歉,如果我输入了一些语法错误,英语不是我的母语。
【问题讨论】:
-
你为什么试图传递
myObject.data?你希望它做什么? -
我什至无法想象将
int传递给接受std::vector的函数的最初目的。 -
要将引用存储在
std::vector中,您可以使用std::reference_wrapper -
@Ron 它没有通过
int。 -
你的代码应该做什么?您的代码没有解释任何内容。
标签: c++ class vector reference