背景
太夸张了家人们,我之前LeetCode刷题一直觉得函数返回的是局部变量,很疑惑为什么我在算法实现的函数里不new一个堆区变量也能ac。刚才忽然意识到返回的是值,而不是指针,所以应该有个返回值拷贝的过程。
于是又想到了返回值拷贝会不会对算法测速有很大影响,尤其是在返回很大的STL容器的时候。于是我去测速了,发现可以说是根本没影响。
于是就又有了个疑惑,就是为什么没影响。于是我搓了个类对象,在各种构造函数里打日志,结果发现返回类对象的时候自动调用移动构造。太强了,为C++的奇怪特性折服。
结论
函数返回对象A,外部用对象B接收。先使用移动构造,通过A构造B,再析构A。
1 条评论
博主真是太厉害了!!!