由于我不太熟悉c++的新特性,这个SensorManager& mgr(SensorManager::getInstance());语句让我很困惑,我认为这是某种变量语句,但不确定。我相信这个mgr不是一个函数,因为下面的语句sp<SensorEventQueue> queue(mgr.createEventQueue());使用mgr作为对象。
SensorManager::getInstance()返回SensorManager类型实例的引用,但是SensorManager类中没有构造函数来接收引用。
我承认,这句话做了一个像SensorManager& mgr = SensorManager::getInstance();这样的动作,但这句话TYPE& name(&TYPE)到底意味着什么?这是否是复制结构与单例模式相适应的一个新特性?
发布于 2016-03-10 12:18:14
我阅读您提供的代码的方式是,有一个静态方法SensorManager::getInstance()声明如下:
class SensorManager
{
// ....
public:
static SensorManager& getInstance();
// ....
}这将返回对SensorManager的单例实例的引用。然后使用此引用创建引用变量mgr。
所以是的,这句话:
SensorManager& mgr(SensorManager::getInstance());等于
SensorManager& mgr = SensorManager::getInstance();发布于 2016-03-10 11:31:46
SensorManager& mgr(SensorManager::getInstance()); -> --这是一种函数声明,格式如下:
返回类型function_name(参数到函数);
函数mgr接收SensorManager类型的实例并返回sensorManager实例的引用。
https://stackoverflow.com/questions/35915152
复制相似问题