Что означает _bstr_t :: operator =? - PullRequest
       20

Что означает _bstr_t :: operator =?

0 голосов
/ 25 сентября 2019

У меня есть некоторый исходный код с манипуляциями со строками COM, но этот код меня смущает

_bstr_t btLeft;
_bstr_t tempData ;
_bstr_t btRight ;
//Do something to assign values to 3 above variables 
.....
//And here
_bstr_t::operator = (btLeft + tempData + btRight); //confused!!!

return true

=> Что означает этот код?

_bstr_t::operator = (btLeft + tempData + btRight);

это похоже на конканат строки?какое возвращаемое значение?

1 Ответ

1 голос
/ 25 сентября 2019

Это то же самое, что и следующее:

const auto foo = btLeft + tempData + btRight;
this->_bstr_t::operator=(foo);
  1. btLeft + tempData + btRight складывает вместе три экземпляра _bstr_t ( см. Документацию здесь ).Это действительно объединяет 3 строки.
  2. this->_bstr_t::operator=(foo); берет результат 1 и вызывает оператор присваивания ( см. Также документацию ) базового класса, который должен быть _bstr_t.

Можно сказать, что он объединяет три строки и присваивает результат самому себе.

(Все это при условии, что хрустальный шар Хасна Пассанта сказал ему правильно, что ваш кодчасть функции-члена класса, которая наследуется от _bstr_t)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...