Russian Qt Forum
Август 17, 2018, 13:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Непонятки с wstring в Си++ при применении внутри класса.  (Прочитано 226 раз)
Mirra_Andryuhan
Новичок

Offline Offline

Сообщений: 1


Просмотр профиля
« : Август 10, 2018, 06:10 »

Всем доброго.

Не получается разобраться в одной ситуации (см. название темы), в которой класс wstring ведет себя непонятно. Для наглядности привожу пример.

Код:
//Элементарный класс, все просто и понятно.
class a
{
    wstring slovo;
public:
    a() {slovo = L"???????";}
    wstring getSlovo() { return slovo; }
};

wstring getslovof()
{
    wstring slovo = L"???????";
    return slovo;
}

int main()
{
   a sl;
   wcout << getslovof()  << L"\n";   //Эта строчка срабатывает нормально, вывод идет.
   wcout << sl.getSlovo() << L"\n"; //Эта строчка не срабатывает, получаю аварийное завершение программы.
   return 0;
}

В общем, посмотрел книги, полистал форумы по части классов и класса wstring, ничего не нашел в своем коде по части ошибки. Все что понял, что сделал что-то не так, при применении в классе "a". При этом, вторую строчку делал через присвоение отдельной переменной wstring и выводил без ошибок через такую переменную. А как сделать так, чтобы пример выше работал без ошибок? Где я ошибся?

Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5676


Жаждущий знаний


Просмотр профиля
« Ответ #1 : Август 10, 2018, 09:21 »

Все тут правильно, ошибки быть не должно. Прогони под дебагом.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
-------------------------------
https://twitter.com/panter_dsd
https://facebook.com/panter.dsd
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4012



Просмотр профиля WWW
« Ответ #2 : Август 10, 2018, 12:54 »

немного настораживают знаки вопроса в строке. Может проблемы из-за сломанной кодировки?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
_Bers
Крякер
****
Offline Offline

Сообщений: 325


Просмотр профиля
« Ответ #3 : Август 13, 2018, 13:16 »

Всем доброго.

Не получается разобраться в одной ситуации (см. название темы), в которой класс wstring ведет себя непонятно. Для наглядности привожу пример.

Код:
//Элементарный класс, все просто и понятно.
class a
{
    wstring slovo;
public:
    a() {slovo = L"???????";}
    wstring getSlovo() { return slovo; }
};

wstring getslovof()
{
    wstring slovo = L"???????";
    return slovo;
}

int main()
{
   a sl;
   wcout << getslovof()  << L"\n";   //Эта строчка срабатывает нормально, вывод идет.
   wcout << sl.getSlovo() << L"\n"; //Эта строчка не срабатывает, получаю аварийное завершение программы.
   return 0;
}

В общем, посмотрел книги, полистал форумы по части классов и класса wstring, ничего не нашел в своем коде по части ошибки. Все что понял, что сделал что-то не так, при применении в классе "a". При этом, вторую строчку делал через присвоение отдельной переменной wstring и выводил без ошибок через такую переменную. А как сделать так, чтобы пример выше работал без ошибок? Где я ошибся?




вы ошиблись с примером-иллюстрацией. он не содержит ошибок.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.049 секунд. Запросов: 23.