У меня есть существующая функция, и я хотел бы добавить параметр и установить для него значение по умолчанию, чтобы оно не влияло на другие модули, которые его используют.
BOOL myFunc(int A, CString& strTest);
Инициализация его к NULL или 0 дает мне сообщение об ошибке. Как мне инициализировать strTest в моем объявлении func?
Вы можете попробовать таким образом
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
}
Вероятно, инициализируйте его пустой строкой:
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);