由于我对 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();
// ....
}
并且这将返回对传感器管理器的单一实例的引用。然后,此引用用于创建引用变量 mgr。
所以是的,这条线:
SensorManager& mgr(SensorManager::getInstance());
相当于
SensorManager& mgr = SensorManager::getInstance();
SensorManager& mgr(SensorManager::getInstance());
-> 这是以下格式的函数声明:
返回类型 function_name(参数到函数);
函数 mgr
接收类型 SensorManager
的实例,并返回 sensorManager
的实例的引用