оператор TYPE () и взятие адреса объекта

Класс ATL CComBSTR имеет BSTR член m_str и operator BSTR () который возвращается m_str,

Теперь, если функция принимает BSTR * в качестве аргумента, можно ли передать адрес CComBSTR?

CComBSTR path;
// signature is IzFileFinder::GetDir(CY index, LPBSTR path)
fileFinder->GetDir(INT64toCURRENCY(i), &path);

Компилятор не жалуется, но если он действительно в порядке, почему он работает?

1

Решение

Вы не передаете адрес CComBSTR, но адрес его m_str член. CComBSTR случается, чтобы обеспечить, среди прочего, operator&() это возвращает &m_str,

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector