最近在看cocos2dx的源代码,发现了一个模板类有一个奇怪的语法&&:
inline RefPtr(RefPtr<T> && other)
{
_ptr = other._ptr;
other._ptr = nullptr;
}
刚开始一阵犯晕,一个类型Ref<T>和一个似乎是形参的other与操作会得出一个什么?显然这种理解是错误的。。
“&&”还有一种含义是右值引用,表示形参是一个右值。
**左值 右值:**
int a = 0;
a是一个左值,左值是一个变量,可以被引用和多次使用。0是一个右值,不可以被引用。
左值一般是非临时变量,可以多次使用。右值只在当前表达式有效。
看一下右值引用的用法:
class MyClassB
{
public:
void init(int & intval)
{ cout<<"use & print"<<e