问问c++中的引用传递问题

Vector是我自己定义的一个顺序数组类,然后v是一个形参,HuffmanTree是个构造函数,这个函数主要的内容就是把v中每个元素变为独立的一个HuffmanTree类后,都赋值给DuList(链表)类上每个结点,

img

img

当我形参前面加引用时,赋值完后,该函数的该实参一切正常,该实参的ch='A',w=2(下面的调试界面)

img

当我没加引用时,函数结束后,实参的的成员ch和w都变成?,

img

这是为啥

引用作为函数参数,形参就是实参。
你传引用,通过函数改变了你传递的实参的值。
你传值,这个变量是不能出参的,就是你的实参传递进去,并没有从函数中传递出来,所以猜测此时乱码值就是你变量未初始化时的值。
所以你的形参得改成引用或者指针,另外如果你这里形参确定不被修改,是可以加上const,增加程序的可读性,const &也是常见的参数传递方式
你可以自己写个Demo试试引用作为函数参数的作用。
https://www.cnblogs.com/mylinux/p/4091583.html