c++的参数传递分3种类型,值,地址(*或叫指针)和引用(&),
值传递:函数将拷贝一个一模一样的对象在函数中使用,对该参数的任何操作都不影响函数外部的变量,优点是操作安全,缺点是对于大参数,如一个含有大量成员变量的类,耗费内存
地质传递:实际上是函数拷贝了一个值针变量,使用地址来操作外部的变量,你可以改变这个指针变量,让他指向一个任何你想要的同类的对象不影响外部的指针所指的对象,注意如果是改变指针所指的对象的内容,也就是使用类似语句*x=y; 实际上是指针所指的外部的对象被改变了。地质传递,内春开销很小,一个参数值占4个或8个字节(32位或64位地址指针)
引用传递:直接使用函数外部建立的对象,基本上不消耗内存,对该参数的操作实际上就是对函数外部的对象进行操作,所以一定要注意函数中对该参数的改变将影响该对象在函数外部任何其他地方的值,类似使用*号的地质传递的操作。
qt的参数传递也是遵守以上的规则,针对问题可以考虑用什么样的参数。