C++ Как использовать string::functions для smartpointer<string>

Чтобы избежать ненужных переменных, есть ли способ сделать

int var = sharedPtrStringVar.length();

и другие функции String работают с умными указателями?

До сих пор я копировал строку из указателя во временную переменную, но нет ли лучшего способа (без использования векторов)?

спасибо вам Yksisarvinen это было точно, что я хотел kinow

1 ответ

Решение

Аналогично необработанному указателю, вы используете -> оператор для доступа к членам объекта, поэтому ваш код будет

int var = sharedPtrStringVar->length();

То же относится и к оператору разыменования *:

int var = (*sharedPtrStringVar).length();
std::cout << *sharedPtrStringVar; //print the content
Другие вопросы по тегам