C++_重构String类

本文详细介绍了C++中自定义String类的重构过程,包括成员变量、拷贝函数、拷贝构造函数、重载+=和=运算符的实现,以及不同构造函数的功能,旨在优化内存管理和提高代码效率。
摘要由CSDN通过智能技术生成
//吴振寰老师课堂代码

#include <iostream>
#include <string>
using namespace std;

class SString
{
public:
    void show() const//输出函数,const,无法改变s_的值
    {
        for(size_t i = 0; i < len_; i++)
            cout << s_[i];
        cout<<endl;
    }
    size_t length() const { return len_; }//返回字符串的长度
    size_t size() const { return siz_; }//返回字符串所占内存大小
    const SString & copy(const SString&);//拷贝函数
    const SString & operator=(const SString&);//重构=运算符
    const SString & operator+=(const SString&);//重构+=运算符
    char& operator[](int i) const  {
  //重构[]运算符,返回下标所指元素
        return i >= 0 ? s_[i] : s_[len_ + i];
    }
public://构造与析构函数
    SString(const char *);
    SString(size_t len, size_t size, char* const s) : len_(len), siz_(size), s_(s) { }
    SString() : s_(NULL), len_(0) { }
    ~SString() {  delete[] s_; cout<<"+++"<<endl; }
    SString(const SString& s);

private:
    char *s_;//字符指针
    size_t len_;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值