V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maiziedu
V2EX  ›  C

C++学习之定义 string 类

  •  
  •   maiziedu · 2016-11-15 17:19:30 +08:00 · 1634 次点击
    这是一个创建于 2965 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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/

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2477 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:39 · PVG 12:39 · LAX 20:39 · JFK 23:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.