void MyQuery(CString str1,CString& str2)
准备写一个这样的函数,str1是查询用的语句,str2是查询后的返回结果
比如:
Cstring a,b;
MyQuery(a,b);
但有时候不需要返回结果,只需要str1的参数就够了
比如:
Cstring a;
MyQuery(a);但是想写成默认参数的形式CString& str2=""或者CString& str2=NULL都不行
这样的情况该怎么定义这个函数呢?

解决方案 »

  1.   

    void MyQuery(CString str1,CString str2 = _T(""));
    这样的传递不是很舒服。
      

  2.   

    void MyQuery(CString str1,CString str2 = NULL);
    用指针。
    引用不能为空。
      

  3.   

    1楼指针的方法不知道怎么做,还望指点2楼的方法就没办法把结果返回给str2了啊
      

  4.   


    void MyQuery(CString str1,CString *pstr2 = NULL);
      

  5.   

    返回值就该写在返回值的地方嘛
    CString MyQuery(const CString str);要判断成功与否的话,在函数里抛出异常,我个人觉得用参数查询返回值,维护起来麻烦多个返回值的话,就用新建一个结构体^_^
      

  6.   


       //声明
      void MyQuery(CString str1, TCHAR *pstr2 = NULL); 
      //定义
      void MyQuery(CString str1, TCHAR *pstr2)
    {}
     //调用
     MyQuery("ddd");