扩展类,委派运算符和分配?
Extending a class, delegating operators and assignment?
简而言之...在我的应用程序中,我们经常使用boost::filesystem::path
。它大多运行良好,除非有人决定可爱并在窗口中引用非 unicode 文件名(例如,由于某种原因我无法理解,有人有一个 Shift-JIS 文件名(。
正如所说,无知是幸福的,在我的身上,我想我可以通过做一些类似的事情来解决这个问题(顺便说一句,这甚至有意义吗?
namespace fs = boost::filesystem;
class utf8Path : public fs::path {
public:
utf8Path () : fs::path () {};
utf8Path (std::string path) : fs::path(UnicodeUtil::convertToUTF8(path)) {};
}
当然,我没有考虑到所有的各种任务和这样的运算符。
假设我上面写的内容是有意义的并且不是损坏的代码......是否可以将此方法扩展到构造函数、赋值运算符等的其他版本?
当组合同样好或未重写任何虚拟方法时,继承通常是一个糟糕的设计选择。 在提供的示例中,它首先很难证明新类的合理性。只需在需要的地方调用转换,而不是使用"utf8path"。
虽然我不熟悉这一点,但似乎有一些支持codec_cvt。
相关文章:
- 正在尝试重载二进制搜索树分配运算符
- 自定义先决条件对移动分配运算符有效吗
- C++ - 没有自定义交换功能的移动分配运算符?
- 强制复制分配超过移动分配运算符
- 在之后仍需要使用源对象时调用父移动分配运算符
- c++ 使用动态分配运算符反向数组元素
- 当存在用户定义的移动分配运算符时,已删除模板移动分配运算符
- C++ - 从移动分配运算符调用复制分配
- 不工作 复制分配运算符
- =删除用户定义的成员功能,除了构造函数,分配运算符C 11
- 返回对象如何与分配运算符一起工作
- 下标是否在分配运算符的右侧进行评估
- C++分配适用于已删除的分配运算符
- 用于删除复制/移动分配运算符的有效签名
- 使用新放置作为复制分配运算符不好吗?
- C++ - 父级中的 CRTP 分配运算符不起作用
- 复制派生类的分配运算符
- 未定义 Lambda 复制分配运算符
- 为什么标准在移动分配运算符中使用交换?
- 正确编写复制构造函数和分配运算符的方法