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 实现

 

 调试:

 

posted @ 2021-03-04 22:31  OzTaking  阅读(258)  评论(0)    收藏  举报