我最近一直在学习如何使用 std::mem_fn
库工具。在 C++ Primer 第 5 版中,他们给出了 std::mem_fn
用法的示例,在以下代码片段中 svec
是 vector
字符串
:
auto f = mem_fn(&string::empty); // f takes a string or a string*
f(*svec.begin()); // ok: passes a string object; f uses .* to call empty
f(&svec[0]); // ok: passes a pointer to string; f uses .-> to call empty
注意:在上面的代码片段中没有使用 ->*
虽然我理解.*
和->*
的用法。我不清楚。
所以,我的问题是 .*
、->*
、.->
有什么作用?
最佳答案
你有一个对象 o
和一个指向它的成员 m
的指针。运算符 .*
允许您访问对象的指向成员:
o.*m
您有一个指向对象 p
的指针和一个指向其成员 m
的指针。运算符 ->*
允许您访问指向对象的指向成员:
p->*m
恐怕运算符 .->
不存在。
关于c++ - .*、->* 和 .-> 在 C++ 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30962151/