gpt4 book ai didi

c++ - 深奥的 C++ 运算符

转载 作者:IT老高 更新时间:2023-10-28 21:37:37 26 4
gpt4 key购买 nike

以下深奥的 C++ 运算符的用途是什么?

指向成员的指针

::*

通过指针将指针绑定(bind)到成员

->*

通过引用绑定(bind)指向成员的指针

.*

( reference )

最佳答案

指向成员的指针允许您拥有一个相对于特定类的指针。

所以,假设您有一个包含多个电话号码的联系人类。

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com