去参考指针的地址?

时间:2012-02-29 19:00:53

标签: c++ pointers

我正在处理其他人的代码(Qt桌面应用程序),并发现了这个:

connect( &*mpMainWin, SIGNAL(whatever()), this, SLOT(whatever()) ));

我很难理解&*mpMainWin部分。据我所知,它会返回指向取消引用的指针mpMainWin的地址。

但是mpMainWin已经拥有该地址,因此直接将其作为参数赋予应该具有相同的结果。

所以,如果我没有遗漏任何东西而且我的逻辑是正确的,那么做这样的事情的原因是什么?如果有的话我们应该何时使用这种语法?

1 个答案:

答案 0 :(得分:9)

这可以用作将智能指针(即,实际上不是指针,实现operator*()的类)转换为普通指针的技巧。在没有看到如何宣布mpMainWin的情况下,不可能说这是否是这种情况。如果mpMainWin是一个开头的普通指针,那么是&*mpMainWinmpMainWin相同。