关于对象的几种传参
2021-07-29 本文已影响0人
买买提不撸串
![](https://img.haomeiwen.com/i9657182/c7674eea0050f3e3.png)
![](https://img.haomeiwen.com/i9657182/99158d02d0b065cc.png)
![](https://img.haomeiwen.com/i9657182/9cc62b19d459b0ce.png)
![](https://img.haomeiwen.com/i9657182/97ad14a94f8861d7.png)
STData<float> triangles=m_face_result_manager->getTheFace()->m_wrap_face_vertex_triangles;
这种方式直接=不行,因为左边只在栈上开辟了一块空间,但里面的变量并没赋值,所以要想得到一个新的对象一般用copyTo;
STData& triangles=m_face_result_manager->getTheFace()->m_wrap_face_vertex_triangles;
这种就是直接引用右边的对像;
如果是传给函数的形参,不加“&”的话是会拷贝的,加“&”就是引用;
STData triangles=m_face_result_manager->getTheFace()->m_wrap_face_vertex_triangles.rowRange();这种可以是因为右边是个函数返回值,是会拷贝的,和传给函数参数差不多