由于我不太熟悉c ++的新功能,因此此SensorManager& mgr(SensorManager::getInstance());语句使我很困惑,我认为这是一种变量语句或某种不确定的东西。我相信此mgr不是函数,因为以下语句sp<SensorEventQueue> queue(mgr.createEventQueue());使用mgr作为对象。

SensorManager::getInstance()返回SensorManager类型实例的引用,但是SensorManager类中没有构造函数可接收引用。

据我所知,该语句的作用类似于SensorManager& mgr = SensorManager::getInstance();,但是TYPE& name(&TYPE)语句到底意味着什么?这是复制构造的新功能以适合单例模式吗?

最佳答案

我阅读提供的代码的方式是,有一个静态方法SensorManager :: getInstance()声明如下:

class SensorManager
{
    // ....
    public:
        static SensorManager& getInstance();

    // ....
}


并返回对SensorManager的单例实例的引用。然后,该参考用于创建参考变量mgr。

所以是这样:

SensorManager& mgr(SensorManager::getInstance());


相当于

SensorManager& mgr = SensorManager::getInstance();

关于c++ - C++:语句“TYPE&name(&TYPE);”的作用是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35915152/

10-10 09:58