由于我对c ++的新功能不是很熟悉,这个SensorManager& mgr(SensorManager::getInstance());
语句让我很困惑,我认为这是一种变量陈述,但不确定。我相信此mgr
不是函数,因为以下语句sp<SensorEventQueue> queue(mgr.createEventQueue());
使用mgr
作为对象。
SensorManager::getInstance()
返回SensorManager类型实例的引用,但SensorManager类中没有构造函数来接收引用。
我承认,这个陈述做了像SensorManager& mgr = SensorManager::getInstance();
这样的动作,但这个陈述TYPE& name(&TYPE)
究竟是什么意思呢?这是复制构造的新特征,以适应单例模式吗?
答案 0 :(得分:1)
我读取你提供的代码的方式是有一个静态方法SensorManager :: getInstance()声明如下:
class SensorManager
{
// ....
public:
static SensorManager& getInstance();
// ....
}
并返回对SensorManager的单例实例的引用。然后使用该引用来创建引用变量mgr。
所以是这一行:
SensorManager& mgr(SensorManager::getInstance());
相当于
SensorManager& mgr = SensorManager::getInstance();
答案 1 :(得分:0)
SensorManager& mgr(SensorManager::getInstance());
- &gt;这是以下格式的函数声明:
返回类型function_name(参数to function);
函数mgr
接收类型为SensorManager
的实例,并返回sensorManager