string类的实现

出处:https://github.com/chenshuo/recipes/blob/master/string/StringTrivial.h

#include<utility>
#include<assert.h>
#include<string.h>

class String
{
	String() : data_(new char[1])
    {
    	*data_ = '\0';
    }
    String(const char* str) : data_(new char[strlen(str) + 1])
    {
    	strcpy(data_, str);
    }
    String(const String& str) : data_(new char[str.size() + 1]
    {
    	strcpy(data_, str.c_str())
    }
    String(String&& str) noexcept : data_(str.data_)
    {
    	str.data_ = nullptr;
    }
    String& operater=(String str)
    {
    	swap(str);
        return *this;
    }
    ~String() noexcept
    {
    	delete[] data_;
    }
    size_t size()
    {
    	return strlen(data_);
    }
    const char* c_str()
    {
    	return data_;
    }
    void swap(string& rhs)
    {
    	std::swap(data_, rhs.data_);
    }
    
    private:
    	char* data_;
}
全部评论

相关推荐

11-28 17:58
门头沟学院 Java
美团 JAVA开发 n×15.5
牛客786276759号:百度现在晋升很难的 而且云这块的业务没美团好 你看百度股价都跌成啥样了
点赞 评论 收藏
分享
10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
10-28 14:42
门头沟学院 Java
watermelon1124:因为嵌入式炸了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务