2016-12-21 8 views
-1

Это может показаться тривиальным для обычных пользователей C++, но в настоящее время я пересматриваю C++ снова и снова. У меня есть функция, которая принимает int&, и я хотел бы добавить это значение в строку для оператора печати. Итак, у меня есть что-то вроде этого:Преобразование int & в строку

std::string getTest(void* dataGroup, int& xWidth, int& yHeight) 
{ 
    std::string results = ""; 

    results += "\nxWidth is: " + xWidth; 

    return results; 
} 

который не работает, когда я его вызываю. Каков правильный способ преобразования значения pass-by-reference int & в форму, которую можно добавить в строку?

+0

Вы не можете этого сделать. Используйте, например: 'results + =" \ nxWidth: "+ std :: to_string (xWidth);'. Пожалуйста, подумайте о том, чтобы сделать немного больше исследований перед публикацией здесь. ' –

+1

http://en.cppreference.com/w/cpp/string/basic_string/to_string, http://stackoverflow.com/questions/5590381/easiest-way-to-convert-int-to-string-in -c, http://stackoverflow.com/questions/29333397/how-to-convert-int-to-string, – chris

+0

Одна из сторон оператора '+' должна быть типа 'std :: string' для этого работать. У вас есть 'const char const *' и 'int &'. Они несовместимы. Вы взглянули на сообщение об ошибке, которое должен метать компилятор? – Qix

ответ

3

std::to_string(xWidth).

& В значительной степени не имеет значения. to_string принимает значение int, поэтому как ваша функция принимает его, не имеет значения: по значению, lvalue ref, rvalue ref, const или не const ... все будет работать.

+0

Следует также отметить, что использование 'int &' в этом случае бессмысленно, так как вы не меняете его, и в конечном итоге он будет иметь тот же размер (возможно, даже меньше в некоторых случаях), чтобы передать его как значение. – Qix

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

  • Нет связанных вопросов^_^