crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Qstring в const QString&
Гость_SiL_*
сообщение 7.2.2010, 19:51
Сообщение #1





Гости








    


здравствуйте! вообще новичок в программировании, элементарное доставляет кучу хлопот. У меня такая проблема: функция принимает const QString&, а у меня есть Qstring. Посоветуйте, пожалуйста, как правильно преобазовать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 7.2.2010, 20:02
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Не очень понятно в чем вопрос.
void CMyClass::SetString(const QString& sString)
{
     m_sString = sString;
}

int main(...)
{
CMyClass a;
QString s("123");
a.SetString(s);
}


Тут преобразования нет (в смысле преобразования типов). Просто функция принимает ссылку на переменную. Причем константную. Таким образом просто при передаче строки не создается объект QString (не вызывается его конструктор), а происходит просто передача адреса этой строки.

Или я что-то не так понял?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.2.2010, 22:15
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Rocky @ 7.2.2010, 23:02) *
Или я что-то не так понял?
всё правильно.

по простому можно сказать так:
Если функция принимает Type&, то просто не происходит копирования передаваемого значения. Т.е. работа осуществляется напрямую, а значит быстрее.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_SiL_*
сообщение 8.2.2010, 11:08
Сообщение #4





Гости








    


:((
т.е. так верно?
QString f = "ttt.txt";
add( f );

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 8.2.2010, 12:08
Сообщение #5


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


не могу согласится с предыдущими постами.
преобразоване всё же есть просто оно неявное. Так и называется неявное преобразование типов.
от T к const T
от T к T&
преобразование происходит неявно.

Цитата(Гость_SiL_* @ 8.2.2010, 11:08) *
т.е. так верно?

если имеется ввиду что add принимает const QString& то верно и недопонимания не должно вызвать.

Сообщение отредактировал kwisp - 8.2.2010, 12:08
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_SiL_*
сообщение 8.2.2010, 12:30
Сообщение #6





Гости








    


просто после этой строчки происходит segmentation fault, а если передавать че просят - то все путем... и почему такое может быть - отсюда и появился вопрос (
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 8.2.2010, 15:14
Сообщение #7


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


люди добрые с этого и надо было начинать.
!!!
приведенного кода мало. что за функция add?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.11.2024, 2:03