0

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

BOOL myFunc(int A, CString& strTest);

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

4

2 回答 2

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);
于 2013-02-22T06:37:44.477 回答
1

你可以这样试试

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
}
于 2013-02-22T07:14:48.247 回答