我有一个现有的函数,我想添加一个参数并为其设置一个默认值,这样它就不会影响使用它的其他模块。
BOOL myFunc(int A, CString& strTest);
将其初始化为 NULL 或 0 会给我一条错误消息。如何在我的 func 声明中初始化 strTest?
我有一个现有的函数,我想添加一个参数并为其设置一个默认值,这样它就不会影响使用它的其他模块。
BOOL myFunc(int A, CString& strTest);
将其初始化为 NULL 或 0 会给我一条错误消息。如何在我的 func 声明中初始化 strTest?
可能将其初始化为一个空字符串:
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);
你可以这样试试
class A{
public:
static CString defArg;
bool myFunc(int A, CString& strTest=defArg);
};
CString A::defArg = "defArg";
bool myFunc(int A, CString& strTest){
//what you need to do
}