В настоящее время я работаю над заголовком C ++ для кодирования и декодирования текста. А точнее: UTF-8, UTF-16, UCS-2 и UTF-32. Но я дошел до того, что мои знания C ++ не дадут мне дальнейшего развития:
Я бы хотел использовать абстрактный класс для декодирования и кодирования при создании базовых классов для каждого кода c , Затем, если используется какая-либо функция, связанная с кодированием или декодированием, разработчик должен просто передать в функцию пользовательский тип данных.
Проблема в том, что я понятия не имею, как на самом деле это сделать. , В конце концов, вы не можете передать класс stati c в качестве параметра. Но я тоже не хочу ничего кодировать; Разработчик также должен иметь возможность добавлять любой код c без особых проблем и без изменения моего заголовка.
Кроме того, это должно быть как можно проще. Код будет выглядеть примерно так:
namespace Encoding {
class Encoder {
public:
virtual std::string Encode(std::string sOriginal) = 0;
};
// Derived classes like UTF8 and UCS2 here
}
void OutputEncoded(std::string s, Encoder enc) {
std::cout << enc.Encode(s);
}
int main() {
OutputEncoded("Hellö Wörld!", Encoding::UTF8);
}
Есть идеи, как это сделать? Может быть, способ без создания объекта, но только с помощью методов stati c? Или я должен использовать объект с указателем?