zoukankan      html  css  js  c++  java
  • C++03:论常用的类

    一.简介

    二.String类

    class String{
    
    public:
        
        String(const char* str=NULL);    //通用构造函数
        String(const String& str);       //拷贝构造函数
        ~String();                       //析构函数
    
        String  operator +(const String& str) const;    //重载+
        String& operator =(const String& str);          //重载=
        String& operator +=(const String& str);         //重载+=
        bool    operator ==(const String &str);         //重载==
        char&   operator [](int n) const;               //重载[]
    
        size_t size() const           //获取长度
        const char* c_str() const;    //获取C字符串
    
        friend istream& operator >>(istream& is,String& str);    //输入
        friend ostream& operator <<(ostream& os,String& str);    //输出
        
    private:
        
        char* data;       //字符串
        size_t length;    //长度
            
    
    }
    
    //通用构造函数
    String::String(const char* str){
    
        if(!str){
            length=0;
            data=new char[1];
            *data='';
        }
        else{
            length=strlen(str);
            data=new char[length+1];
            strcpy(data,str);
        }
    }
    
    //拷贝构造函数需要进行深拷贝
    String::String(const String& str){
        
        if(!str){
            length=str.size();
            data=new char[length+1];
            strcpy(data,str.c_str());
        }
    }
    
    //析构函数需要内存释放和长度归零
    String::~String(){
    
        delete[] data;
        length=0;
    }
    
    //重载字符串连接运算
    String String::operator +(const String& str){
        
        String newString;
        newString.length=length+str.size();
        newString.data=new char[newString.length+1];
        strcpy(newString.data,data);
        strcat(newString.data,str.data);
        return newString;
    }
    
  • 相关阅读:
    PLSQL集合类型的使用总结
    户外品牌
    tensorflow学习资源
    sessionState详解
    easyui textbox 添加 onblur 失去焦点事件
    Android 只开启一个Activity实例
    SQL语句生成指定范围内随机数
    sql server 字符串转成日期格式
    调用WebServices超时
    adb install INSTALL_FAILED_ALREADY_EXISTS
  • 原文地址:https://www.cnblogs.com/k5bg/p/11096880.html
Copyright © 2011-2022 走看看