c++ (9)-MyString类的封装
0.MyString类

1.MyString类无参构造函数封装
_CRT_SECURE_NO_WARNINGS


2.拷贝构造函数封装

3.析构函数封装

4.程序调试

5. 重载string类的等号“=”操作符:
有两种使用方法:
【1】 使用一个新的String对象赋值给已经创建的String对象;
【2】 使用一个“字符串”赋值给已经创建的String对象;
【说明】需要考虑需要支持“连等”则返回值是“引用”;

函数原型:

5.1. 使用一个“字符串”赋值给已经创建的String对象;

5.2. 使用一个新的String对象赋值给已经创建的String对象;

6. 重载String的数组操作符”[]”
【说明】
【1】 支持使用类似数组的元素” s4[0]”的形式取出其中的某个元素;
【2】 需要考虑既可能当左值(需要返回引用),也可能当右值;
6.1. 函数原型



调用:

7. 重载左移<<操作符
【说明】支持返回值当左值,可以连续输出字符串;
7.1. 函数原型

7.2. 使用友元进行声明

7.3. 实现

7.4. 运行

8. 重载恒等于“==”符号

8.1. 函数原型

8.2. 函数声明

8.3. 函数实现

9.const
【说明】要学会使用const修饰,在很多的框架中都会使用const修饰;


10.String类重载大于“>”小于“<”
10.1 函数声明

10.2 函数实现

11.使用MyString类的私有指针
11.1使用场景描述
【说明】直接将一个字符串赋值给类的指针;
但是类的指针是一个私有属性,无法直接访问;
在很多的底层库都有使用该场景;


实现:

调用成功:


12.声明函数指定默认属性

【说明】
1.指定了默认属性之后需要改造一下构造函数:
2.【个人意见】下面的写法是一个意思吧,不需要专门的区分是否为len是否为0;

13.重载右移操作符
13.1 函数原型

13.2 声明

13.3 实现

调试:

浙公网安备 33010602011771号