zoukankan      html  css  js  c++  java
  • string类的简洁版实现

    说是原创,差不多算是转载了,我也是看了好多大牛的写法,大牛的建议,自己加一总结,形成代码:

    实现一个简洁版的string类,我觉得,下面的也够了:另外需要参见另外的写法:


    http://blog.csdn.net/li_ning_/article/details/51282704


    #pragma once
    
    class String
    {
    public:
    	//1.无参构造
    	String()
    		:_str(new char[1])
    	{
    		*_str = '';
    	}
    
    	//2.有参构造
    	String(char *str)
    		:_str(new char[strlen(str) + 1])
    	{
    		strcpy(_str,str);
    	}
    
    	//3.拷贝构造
    	String(const String& str)
    		:_str(new char[str.size() + 1])   //size返回str对象的_str大小
    	{
    		strcpy(_str,str.c_str());         //c_str() 返回str对象的_str;
    	}
    
    	//4.析构
    	~String()
    	{
    		delete[] _str;
    	}
    
    	//5.赋值运算符的重载
    	String& operator=(const String& str)
    	{
    		String temp(str);
    		swap1(str);
    		return *this;
    	}
    		
    	//其余可写可不写
    
    	//辅助函数
    	size_t size() const
    	{
    		return strlen(_str);
    	}
    
    	const char* c_str() const
    	{
    		return _str;
    	}
    
    	void swap1(const String& str) const
    	{
    		std::swap(_str,str._str);
    	}
    private:
    	char *_str;
    };
    很简单,没有什么要着重讲的,但是,我保证以后遇见不会再写错,强烈建议,看懂这个,再看看我的另一篇博客,见链接;

    赐教!

  • 相关阅读:
    JSTL标签库
    JavaScript中数组操作
    jquery . fancybox()
    jQuery ajax
    jquery学习笔记2
    codeforces_1066_B.Heaters
    codeforces_1065_D.three pieces_思维
    codeforces_B. Forgery
    codeforces_C. Sequence Transformation
    codeforces_D. Social Circles
  • 原文地址:https://www.cnblogs.com/melons/p/5791845.html
Copyright © 2011-2022 走看看