2013-09-24 3 views
0

Я не могу использовать для оператора [] указатель на объект wstring, прежде чем преобразовывать его в константу с помощью функции c_str().Доступ к элементам с помощью оператора [] по указателю на wstring

В моей программе getwString() возвращает указатель на wstring

Это работает:

`if(obj->getwString()->c_str()[5]!='H')` 

Это не так:

`if(obj->getwString()->[5]!='H')` 

Как я могу разыменования это вместо того, чтобы использовать c_str() функцию Need Помощь

+0

Вы должны сравнивать его с широким символом и, вероятно, не должны возвращать указатель на эту функцию в первую очередь. – chris

+0

'if (obj-> getwString() -> operator [] (5)! = L'H ')' – jrok

ответ

1

Существует еще один разыменовать оператор, кроме -> для случаев, как этот, * оператор:

std::wstring * ptr = obj->getwString(); 
(*ptr)[5]; 

или просто

(*obj->getwString())[5]; 
+0

Большое спасибо, я помещал звездочку в другое место. –

1

Если вы действительно хотите получить доступ к этому, что, как вы можете сделать это следующим образом:

if(obj->getwString()-> operator [](5) != 'H'), но это не очень красиво.

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

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