Как выполнить параметр, который передается по ссылке в C ++? - PullRequest
0 голосов
/ 10 января 2010

Я создал метод, который принимает параметр по ссылке, как показано ниже:

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

QList<int> getDataFromAnotherFunction(){

//we will do something good over here

return QList<int>
}

но проблема в том, что когда я хочу использовать данные а, в них нет данных. и это говорит 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 голосов
/ 10 января 2010

Вы, вероятно, хотите сделать следующее:

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

, а затем используйте его так:

QList <int> my_qlist;
Func1(my_qlist);

Обратите внимание, что вы должны перегрузить оператор <<. Ваше текущее поведение зависит от того, что вы написали, от того, что в getDataFromAnotherFunction вы возвращаете пустой QList. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...