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;
    }
    
  • 相关阅读:
    I
    H
    G
    F
    E
    论js里面的for循环
    js常见问题之为什么点击弹出的i总是最后一个
    array类型的方法
    string类型的方法
    for in在对象和数组中的应用
  • 原文地址:https://www.cnblogs.com/Draymonder/p/11523746.html
Copyright © 2011-2022 走看看