我有一个现有的函数,我想添加一个参数并为它设置一个默认值,这样它就不会影响使用它的其他模块。
BOOL myFunc(int A, CString& strTest);
将其初始化为NULL或0会给出错误消息。如何在我的func声明中初始化strTest?
答案 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)
您可以尝试这种方式
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
}