Gil*_* PJ 5 c++ string stdstring c++11
今天我试着研究一些代码,我坚持这条线.
std::vector<std::string(SomeClassInterface::*)()> ListOfFnPointers;
Run Code Online (Sandbox Code Playgroud)
这个std :: string构造函数的含义是什么?我经历过这个,但我不知道它意味着什么.
它在代码中用作,
if (!ListOfFnPointers.empty())
{
std::vector<std::string> StringList;
for (auto Fn : ListOfFnPointers)
{
StringList.push_back((pSomeClassObj->*Fn)());
}
...
}
Run Code Online (Sandbox Code Playgroud)
pSomeClassObj->*Fn?它与std::string构造函数无关.
std::string(SomeClassInterface::*)()是成员函数的指针类型,成员函数属于类SomeClassInterface,返回std::string,不带参数.
->*是指向成员的访问操作符(也是.*).(pSomeClassObj->*Fn)()将调用成员函数pSomeClassObj,该函数应该是一个带有类型的指针SomeClassInterface*.