不能仅通过“语法糖”来创建围绕std::string的包装器
创始人
2024-12-27 05:00:34
0

解决方案是将std::string的所有操作都显式地公开给新包装器,并将它们重定向到std::string的对应操作,示例代码如下:

class MyString {
public:
    // construct from const char*
    MyString(const char* str) : str_(str) {}

    // copy constructor
    MyString(const MyString& other) : str_(other.str_) {}

    // move constructor
    MyString(MyString&& other) noexcept : str_(std::move(other.str_)) {}

    // copy assignment
    MyString& operator=(const MyString& other) {
        str_ = other.str_;
        return *this;
    }

    // move assignment
    MyString& operator=(MyString&& other) noexcept {
        str_ = std::move(other.str_);
        return *this;
    }

    // conversion to std::string
    operator const std::string&() const noexcept {
        return str_;
    }

    // length() operation
    size_t length() const noexcept {
        return str_.length();
    }

    // find() operation
    size_t find(const MyString& substr, size_t pos = 0) const noexcept {
        return str_.find(substr.str_, pos);
    }

    // substr() operation
    MyString substr(size_t pos = 0, size_t len = std::string::npos) const {
        return MyString(str_.substr(pos, len).c_str());
    }

    // insert() operation
    MyString& insert(size_t pos, const MyString& str) {
        str_.insert(pos, str.str_);
        return *this;
    }

    // erase() operation
    MyString& erase(size_t pos, size_t len = std::string::npos) {
        str_.erase(pos, len);
        return *this;
    }

    // append() operation
    MyString& operator+=(const MyString& str) {
        str_.append(str.str_);
        return *this;
    }

private:
    std::string str_;
};

相关内容

热门资讯

透视透视(wopoker)外挂... 《透视透视(wopoker)外挂透明挂辅助app(WePoKe透明挂)本然存在有挂(详细透视实用技巧...
智星德州菠萝外挂!云扑克德州辅... 智星德州菠萝外挂!云扑克德州辅助器,(wepOkE)最初真的有挂(详细透视解说技巧);亲真的是有正版...
透视模拟器(WepoKe)外挂... 自定义we辅助poker德之星系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助...
微扑克ai辅助!wepoke辅... 微扑克ai辅助!wepoke辅助有挂吗,(WepokE)本来真的是有挂(详细辅助透牌教程)1、点击下...
透视中牌率(wepoke黑科技... 透视中牌率(wepoke黑科技)微扑克代打(详细辅助软件教程)原来有挂1、超多福利:超高返利,海量正...
透视规律(WePoKer)透明... 透视规律(WePoKer)透明挂辅助挂(aapoker透明挂)从前是真的有挂(详细透视微扑克教程)是...
微扑克辅助挂!德州wpk德州有... 微扑克辅助挂!德州wpk德州有挂吗,(AAPOker)一直存在有挂(详细辅助技巧教程)科技教程也叫必...
透视安卓版(智星德州菠萝有挂吗... 透视安卓版(智星德州菠萝有挂吗)线上德州ai智能机器人(详细辅助AI教程)固有有挂1、构建自己的微扑...
透视脚本(WepokE)透明挂... 1、透视脚本(WepokE)透明挂辅助代打(wepoke有挂)原先是有挂(详细透视教你教程)。2、w...
德扑ai智能!wpk ai是什... 德扑ai智能!wpk ai是什么,(德州ai)本来是有挂(详细辅助扑克教程)1、不需要AI权限,帮助...