zoukankan      html  css  js  c++  java
  • Cpp 实现简易String类

    需求

    实现一个String类

    自己写的String

    headers/String.h

    #ifndef __MYSTRING__
    #define __MYSTRING__
    #include <string.h>
    
    class String
    {
    public:
        // 构造函数
        String(const char* c_str = 0);
        // 拷贝构造函数
        String(const String& str);
        // 析构函数
        ~String();
        // 赋值函数
        String& operator = (const String& str);
        char* get_c_str() const { return data; }
    
    private:
        char* data;
    };
    
    inline String::String(const char* c_str) {
        if(c_str) {
            this->data = new char[strlen(c_str)+1];
            strcpy(data, c_str);
        } else {
            this->data = new char[1];
            this->data[0] = '';
        }
    }
    inline String::~String() {
        delete []data;
    }
    
    inline String::String(const String& str) {
        this->data = new char[strlen(str.data) + 1];
        strcpy(this->data, str.data);
    }
    
    inline String& String::operator = (const String& str) {
        if (this == &str)
            return *this;
        delete []this->data;
        this->data = new char[strlen(str.data) + 1];
        strcpy(data, str.data);
        return *this;
    }
    
    
    #endif // __MYSTRING__
    

    main.cpp

    #include <iostream>
    #include "headers/String.h"
    using namespace std;
    
    int main()
    {
        String str;
        cout << str.get_c_str() << endl;
        String str1("2333");
        cout << str1.get_c_str() << endl;
        str = str1;
        cout << str.get_c_str() << endl;
        return 0;
    }
    
  • 相关阅读:
    bzoj1042 [ HAOI2008 ] --容斥原理+完全背包
    bzoj1079 [ SCOI2008 ] --记忆化搜索
    bzoj1584 [ Usaco2009 Mar ] --DP
    bzoj4724 [ POI2017 ] --数论
    bzoj3208--记忆化搜索
    bzoj3095--数学题
    resque 遍历加载job目录下的类
    php,js清除cookie
    nginx 设置 fastcgi缓存
    php缓冲区 sapi缓冲区
  • 原文地址:https://www.cnblogs.com/Draymonder/p/11523746.html
Copyright © 2011-2022 走看看