2012-02-08 4 views
0

Я сделал функцию, как это:параметров прохождения ошибки

void function(Objectx &x); 

И я вызвать функцию так:

Objectx o; 
function(o); 

в том же классе.

Когда я скомпилировать я получаю это:

error: no matching function for call to ‘function(Objectx)’ 
note: candidate is: void function (Objectx&) 

Извините, если это хромой вопрос, но я не нашел решение в любом месте. Есть ли у вас какие-либо предложения?

+0

Вы только заявили, что функция не определена – Devjosh

+0

Я думаю, нам нужна дополнительная информация. –

ответ

3

Я не думаю, что вы показали реальный код, вызывающий ошибку. (С одной стороны, заявленный код имеет Obectx и ошибка говорит Objectx)

Эта ошибка может произойти, если вы прошли временное значение (RValue), так как не- const ссылки не может связываться с RValue.

Если функция не изменяет свой параметр, изменить подпись:

void function(const Objectx &x); 

Если функция не изменит свой параметр, вам нужно будет хранить временное значение переменной, и передать переменную , Таким образом, любые изменения, внесенные этой функцией, оказываются в переменной, доступ к которой вы можете получить после вызова.

+0

Может ObjectX против Obectx это вопрос :) –

+0

Вот реальный код: недействительного PluginKateXMLEditView :: intialDistributionOfTags (QVector &src); intialDistributionOfTags (rangesList (kd-> documentRange())); rangeList возвращает QVector yonutix

+0

Это _temporary value_ issue – Lol4t0

Смежные вопросы