Мне нужно написать функцию (c ++), определение которой:
const char* getFileName(const char* name);
, чтобы сделать ее короткой, эта функция примет имя, проверит некоторые условия и добавит к нему постфикс, сделав егоправильное имя файла.Например:
name = "someFile", return = "someFile-hd.png"
const char*
, возвращенный этой функцией, будет немедленно передан другой,который принимает const char*
в качестве аргумента
something->loadFile(getFileName("someFile"));
Проблема, с которой я столкнулся, заключается в том, что когда я создаю const char*
в своей функции, его область действия будет ограничена функцией, в которой он был создан.С другой стороны, я не могу изменить код функции loadFile
, так как я использую стороннюю библиотеку.
Я могу написать обертку вокруг loadFile
, чтобы удалить const char*
.создан, но я бы не хотел этого делать, поскольку это упражнение по переносу, и это нарушило бы некоторые шаблоны, которые я создал, чтобы упростить его.
Есть ли способ написать эту функцию, как яописано?
Спасибо
РЕДАКТИРОВАТЬ: небольшое объяснение:
getFileName
- это функция, которую я пытаюсь написать, я могу изменить тип возвращаемого значения, но он должен соответствоватьв качестве параметра функции loadFile
.Моя основная проблема заключается в том, что const char*
, возвращаемый getFileName
, либо теряется, потому что находится вне области видимости, либо я должен удалить его явно, что нарушает мой шаблон переноса.Я хотел бы сгенерировать имя файла в одном вызове функции и больше ничего не делать [другими словами, в исходном коде у меня есть loadFile("something.png")
, и я хочу изменить его на loadFile(getFileName("something"))
без добавления каких-либо новых строк после этого.