//吴振寰老师课堂代码
#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_;
C++_重构String类
最新推荐文章于 2024-07-16 09:49:39 发布
本文详细介绍了C++中自定义String类的重构过程,包括成员变量、拷贝函数、拷贝构造函数、重载+=和=运算符的实现,以及不同构造函数的功能,旨在优化内存管理和提高代码效率。
摘要由CSDN通过智能技术生成