美文网首页
C++ 实现 String 类

C++ 实现 String 类

作者: 东京的雨不会淋湿首尔 | 来源:发表于2021-08-31 15:03 被阅读0次
#include <cstring>
#include <iostream>

class String {
public:
    explicit String(const char* cstr = nullptr){//初始化
        if (cstr) {
            pstr = new char[strlen(cstr) + 1];
            len = strlen(cstr);
            strcpy(pstr, cstr);
        } else {
            pstr = new char[1];
            len = 0;
            *pstr = '\0';
        }
    }
    String(const String& str){//拷贝构造
        pstr = new char[str.len + 1];
        len = str.len;
        strcpy(pstr, str.pstr);
    }
    String(String&& str) noexcept { //移动构造(右值
        if (str.pstr != nullptr) {
            pstr = str.pstr;
            str.pstr = nullptr;
            len = str.len;
        }
    }
    String& operator=(const String& str){ //拷贝复制
        if (this == &str) {
            return *this;
        }
        delete[] pstr;
        pstr = new char[str.len + 1];
        len = str.len;
        strcpy(pstr, str.pstr);
        return *this;
    }
    String& operator=(String&& str) noexcept {//移动赋值(右值
        if (this != &str) {
            delete[] pstr;
            pstr = str.pstr;
            str.pstr = nullptr;
            len = str.len;
        }
        return *this;
    }
    ~String(){
        delete []pstr;
        len = 0;
    }
    int size() const{
        return len;
    }
    char* get_c_str() const {
        return pstr;
    }
private:
    char* pstr;
    int len;
};

简单版,其他如 输入输出运算符,[] 等等查看

https://www.cnblogs.com/zhizhan/p/4876093.html

相关文章

  • C++ 实现 String 类

    简单版,其他如 输入输出运算符,[] 等等查看 https://www.cnblogs.com/zhizhan/p...

  • C++实现string类

    mystring.h mystring.cpp

  • 技能

    C++ C++特性 C++11 多态和继承 构造函数 析构函数 手写代码实现string类 手写代码实现智能指针 ...

  • c++中的字符串string和C语言中的字符char

    c++中的字符串string 在c++中使用string类,必须在程序中包含头文件string #include ...

  • 高质量C++/C编程指南(转)

    1 有如下的c++类 class String { public: String(const char *str ...

  • 字符串

    C++提供了两种字符串的表示形式: C风格字符 C++引入的string类型 C风格 函数 C++中的String类

  • 【图文详解系列】String,StringBuffer与Stri

    一、Java String 类——String字符串常量 String 类实现了 CharSequence 接口。...

  • string的用法

    1、使用string头文件 要想使用标准C++中string类,必须要包含: 或者 string和wstring的...

  • C/C++语言基础

    语言基础 字符串类-string 常量与变量 运算符 程序和语句 字符串类-string (属于类类型)(c++中...

  • C++ string类

    构造函数 注意最后一个构造函数,用n个c来初始化字符串。例如string(5, 'a')就表示字符串"aaaaa"...

网友评论

      本文标题:C++ 实现 String 类

      本文链接:https://www.haomeiwen.com/subject/jseziltx.html