如何在c ++中实现通过引用传递的参数?

时间:2010-01-10 13:36:08

标签: c++ parameters

我创建了一个方法,它通过引用接受参数,如下所示:

void Func1(QList<int> *a){
 (*a) << getDataFromAnotherFunction();
//or
(*a).append(getDataFromAnotherFunction());
}

QList<int> getDataFromAnotherFunction(){

//we will do something good over here

return QList<int>
}

但问题是,当我想使用a的数据时,其中没有数据。 它说0; 我想要计算其中的元素如下:

//for passing a to func1 I use something like that
//QList a;
//func(&a);
//after retruning from func1 now I want to use the result like  below :

a.size();

//but the answer is 0

我应该如何传递参数以获取正确的数据?

问候。

1 个答案:

答案 0 :(得分:0)

您可能希望执行以下操作:

void Func1(QList<int> &a){  // this is pass-by-reference
a << getDataFromAnotherFunction(); 
}

然后像这样使用它:

QList <int> my_qlist;
Func1(my_qlist);

请注意,您必须重载&lt;&lt;运营商。根据您的编写,您当前的行为取决于getDataFromAnotherFunction中返回空QList的事实。