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

How to initialize CString& parameter in a function

本文关键字:CString 参数 初始化 函数      更新时间:2023-10-16

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

BOOL myFunc(int A, CString& strTest);

将其初始化为NULL或0会给我一条错误消息。如何在函数声明中初始化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);

您可以尝试这种方式

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
}