Calc(CString str1)
这样的参数hashthis是按值传递吗?
那按引用传递了?
Calc(CString& str1)这样吗?
我是菜鸟大家别见笑!谢谢

解决方案 »

  1.   

    最好不要使用这种方法
    Calc(CString str1)
    虚拟参数是一个类,占用的内存比较多,函数调用的时候有很多进栈出栈的操作Calc(CString& str1)
    相当于传递一个别名进来,效率会更高
      

  2.   


    CString s;
    CString *ps; func(s)
    复制了一个对象 _s=s;改变_s 不影响以前的s
    func(ps)
    复制了一个CString *指针指向原来的位置,改变指针所指的内容会影响原来的值.
    func(CString & s)
    引用传递 会影响原来的值//因为类的内存很大,所以很多时候都用的是引用传递,避免函数参数的复制消耗..
    但如果你不希望被改变的话,可以使用
    func(const CString & s)
    这样虽然是引用传递,但是在函数体内不可以改变它的内容.