【发布时间】:2020-04-23 15:19:32
【问题描述】:
我目前正在开发用于编码和解码文本的 C++ 标头。确切地说:UTF-8、UTF-16、UCS-2 和 UTF-32。但我已经到了我的 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);
}
知道怎么做吗?也许是一种不创建对象而只使用静态方法的方法?还是我必须使用带指针的对象?
【问题讨论】:
-
什么是静态类?
-
你可能来自 c# 吗? C++ 没有“静态类”,我发现的唯一东西是this question,从 OP 代码中可以知道它们的含义。也许如果您包含一些代码,这也可以在这里
-
请附上你想写的代码的minimal reproducible example,不管多坏,这将有助于澄清
-
注释不是编写代码的最佳位置。 (如果相关)编辑您的问题(或答案),它们有更好的格式。
-
有一些online IDEs比pastebin更合适。
标签: c++ parameters polymorphism abstract