如何初始化CString&函数中的参数

时间:2013-02-22 06:20:11

标签: c++ initialization cstring

我有一个现有的函数,我想添加一个参数并为它设置一个默认值,这样它就不会影响使用它的其他模块。

BOOL myFunc(int A, CString& strTest);

将其初始化为NULL或0会给出错误消息。如何在我的func声明中初始化strTest?

2 个答案:

答案 0 :(得分:2)

可能将其初始化为空字符串:

CString dummy = "";

BOOL myFunc(int A, CString &strTest=dummy);

如果您允许使用默认值,您可能希望将其作为const字符串的引用:

BOOL myFunc(int A, CString const &strTest = dummy);

你可能想考虑使用重载 - 尽管保留现有函数(没有额外的参数),然后写第二个函数(可以转发到第一个函数),它接受额外的参数:

BOOL myFunc(int A);
BOOL myFUNC(int A, CString const &strTest);

答案 1 :(得分:1)

您可以尝试这种方式

A.H

class A{
    public:
      static CString defArg;
      bool myFunc(int A, CString& strTest=defArg);
 };

A.cpp

CString A::defArg = "defArg";

bool myFunc(int A, CString& strTest){
 //what you need to do
}