class A
A func();
A &a = func();
情况一
版本 | 函数内变量 | 接受者 |
---|---|---|
Debug | 局部变量 | 对象 |
A func()
{
A a;
return a;
}
void main()
{
A a = func();
}
结果:
A()
A move construct
~A()
~A()
情况二
版本 | 函数内变量 | 接受者 |
---|---|---|
Release | 局部变量 | 对象 |
A func()
{
A a;
return a;
}
void main()
{
A a = func();
}
结果:
A()
~A()
情况三
版本 | 函数内变量 | 接受者 |
---|---|---|
Debug | 局部变量 | 引用 |
A func()
{
A a;
return a;
}
void main()
{
A &a = func();
}
结果:
A()
A move construct
~A()
~A()
情况四
版本 | 函数内变量 | 接受者 |
---|---|---|
Release | 局部变量 | 引用 |
A func()
{
A a;
return a;
}
void main()
{
A &a = func();
}
结果:
A()
~A()
情况五
版本 | 函数内变量 | 接受者 |
---|---|---|
Debug | 临时变量 | 引用 |
A func()
{
return A();
}
void main()
{
A &a = func();
}
结果:
A()
A move construct
~A()
~A()
情况六
版本 | 函数内变量 | 接受者 |
---|---|---|
Release | 临时变量 | 引用 |
A func()
{
return A();
}
void main()
{
A &a = func();
}
结果:
A()
~A()
网友评论