C++学习之定义 string 类

2016-11-15 17:19:30 +08:00
 maiziedu

string 类使用起来比较方便,在本课程的开始我们就学习了 string 类。之所以那么早就学习 string ,就是希望大家能够用 string 代替 c 风格的字符串。目前为止,我们学习了如何定义类,以及如何为类定义运算符重载函数。今天我们就来定义一个类似于 string 功能的自己的 String 类。

各个函数

1.构造函数

String(const char *s); //用 c 字符串 s 初始化

String(int n,char c); //用 n 个字符 c 初始化

2.拷贝和赋值

String& String(String& str);

const String& operator=(String& str);

3.析构函数

~String();

4.下标访问

char &operator[](int n);

char &at(int n)const;

5.String 类提供的方法

int size()const; //返回当前字符串的大小, string 内部不会在我们每一次的字符串连接的时候都会分配空间,它会多分配一些内存,下次连接时的字符串小于剩下的空间它就不用再为这个字符串分配另外的空间了。它分配的所有空间就是 size ,而字符串的实际长度 length

int length()const; //返回当前字符串的长度

bool empty()const; //当前字符串是否为空

6.重载流插入和提取运算符

istream& operator>>(istream& input, String& str);

ostream& operator<<(ostream& output, String& str);

7.连接两个字符串

String &operator+=(String &s);

8.字符串比较

bool operator==(const String &s1,const String &s2)const;

int compare(const string &s) const;//比较当前字符串和 s 的大小

在我们这里实现的 string 类是比较简单的, C++标准模板库里面的 string 类的方法是非常非常多的,而且是非常非常复杂的。这里我们仅仅是为了给大家演示一下 string 类内部大概的实现方法,以及复习大家前段事件所学习的内容。

原文链接: http://www.maiziedu.com/wiki/cplus/class/

1524 次点击
所在节点    C
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/320713

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX