2014-12-31 82 views
1

我的问题受this other question的启发。解除引用指针的地址

我对&(this->*member)的理解如下:对象有一个叫做member的指针,它被解引用为this->*member。然后,我们将解释刚才的内容。据我所知,这应该与刚刚解除引用的指针地址完全相同,即与this->member完全相同。这是不是真的?

+0

在'this - > * member'中,操作符是' - > *'。这是一个单一的运营商。它不是''''''以某种方式应用于'* member'。它不是'*(this-> member)'。 – Mat

回答

3

不,不是,因为member不是会员。

如果你看看你链接的问题,你会发现该结构没有名为member的成员。特别是它不包含名为member的指针。

member是一个成员指针,作为函数调用参数传递。

+0

如果'member'不是会员,那么你如何能够使用'this - > * member'? – wolfPack88

+1

成员是成员指针。在您链接到的问题中,您看到该成员不是班级成员。它是一个成员指针,也就是说,它是成员相对于包含对象的地址。这意味着'* member',如果它是唯一的理由,将会是一个成员。但是,由于member是相对于某个对象的成员地址,因此只有在它已知的对象中,解除引用才有意义,然后不会被' - > *'使用。 –