我有一些使用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);
它看起来像是字符串连接的吗?哪个返回值?
答案 0 :(得分:1)
与以下相同:
const auto foo = btLeft + tempData + btRight;
this->_bstr_t::operator=(foo);
btLeft + tempData + btRight
将_bstr_t
(see the documentation here)的三个实例加在一起。实际上,这确实将3个字符串串联起来。this->_bstr_t::operator=(foo);
取1的结果,并调用必须为_bstr_t
的基类的赋值运算符(see also the documentation)。您可以说它连接了三个字符串并将结果分配给它自己。
(所有这些假设都是假设Hasn Passant的水晶球正确地告诉了他,您的代码是从_bstr_t
继承的类的成员函数的一部分)