C++:语句 'TYPE& name(&TYPE);' 是什么意思?
C++: what does statement 'TYPE& name(&TYPE);' mean?
由于我对c++的新特性不是很熟悉,这个SensorManager& mgr(SensorManager::getInstance());
语句让我很困惑,我以为这是一种变量语句之类的,但不确定。我相信这个 mgr
不是函数,因为下面的语句sp<SensorEventQueue> queue(mgr.createEventQueue());
使用 mgr
作为对象。
SensorManager::getInstance()
return SensorManager 类型实例的引用,但 SensorManager class 中没有构造函数来接收引用。
据我所知,这句话做了一个类似于SensorManager& mgr = SensorManager::getInstance();
的动作,但是这句话TYPE& name(&TYPE)
到底是什么意思?这是复制构造适应单例模式的新特性吗?
SensorManager& mgr(SensorManager::getInstance());
-> 这是一个函数声明,格式如下:
return type function_name(parameter to function);
函数 mgr
接收类型 SensorManager
的实例和 returns sensorManager
实例的引用
我阅读您提供的代码的方式是,有一个静态方法 SensorManager::getInstance() 声明如下:
class SensorManager
{
// ....
public:
static SensorManager& getInstance();
// ....
}
并且此 returns 是对 SensorManager 的单例实例的引用。然后使用此引用创建引用变量 mgr。
所以是的:
SensorManager& mgr(SensorManager::getInstance());
等同于
SensorManager& mgr = SensorManager::getInstance();
由于我对c++的新特性不是很熟悉,这个SensorManager& mgr(SensorManager::getInstance());
语句让我很困惑,我以为这是一种变量语句之类的,但不确定。我相信这个 mgr
不是函数,因为下面的语句sp<SensorEventQueue> queue(mgr.createEventQueue());
使用 mgr
作为对象。
SensorManager::getInstance()
return SensorManager 类型实例的引用,但 SensorManager class 中没有构造函数来接收引用。
据我所知,这句话做了一个类似于SensorManager& mgr = SensorManager::getInstance();
的动作,但是这句话TYPE& name(&TYPE)
到底是什么意思?这是复制构造适应单例模式的新特性吗?
SensorManager& mgr(SensorManager::getInstance());
-> 这是一个函数声明,格式如下:
return type function_name(parameter to function);
函数 mgr
接收类型 SensorManager
的实例和 returns sensorManager
我阅读您提供的代码的方式是,有一个静态方法 SensorManager::getInstance() 声明如下:
class SensorManager
{
// ....
public:
static SensorManager& getInstance();
// ....
}
并且此 returns 是对 SensorManager 的单例实例的引用。然后使用此引用创建引用变量 mgr。
所以是的:
SensorManager& mgr(SensorManager::getInstance());
等同于
SensorManager& mgr = SensorManager::getInstance();