最佳答案
指向成员的指针允许您拥有一个相对于特定类的指针。
所以,假设您有一个包含多个电话号码的联系人类。
class contact
{
phonenumber office;
phonenumber home;
phonenumber cell;
};
这个想法是,如果你有一个需要使用电话号码的算法,但应该在算法之外决定哪个电话号码,指向成员的指针可以解决问题:
void robocall(phonenumber contact::*number, ...);
现在robocall的调用者可以决定使用哪种类型的电话号码:
robocall(&contact::home, ...); // call home numbers
robocall(&contact::office, ...); // call office number
一旦有了指针,.*
和 ->*
就会发挥作用。所以在robocall里面,你会这样做:
contact c = ...;
c.*number; // gets the appropriate phone number of the object
或:
contact *pc = ...;
pc->*number;
关于c++ - 深奥的 C++ 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2806769/