zoukankan      html  css  js  c++  java
  • 实现一个string类

    实现要实现:构造,析构,拷贝构造,赋值的功能

    1. 提供构造函数 string(), string(const string & str),string(const  char * str), 

    2. 析构函数: ~ string()

    3. 成员函数(重载赋值函数):string &operator=(const string & str); 利用已有的string对象赋值

                                                      string & operator=(const char * str);// 直接用字符串赋值用char * 实现;

    (返回引用,返回对象本身。 传入参数const    & 常量引用,传入本身不能改)

    4. 成员函数(处理字符串的成员函数):

                          size_t size() const; //返回常量

                          void swap(string & str);//交换两个字符串

    5. 成员函数(操作符重载):

    。。。。

    #include <iostream>
    #include <utility>
    #include<stdio.h>
    #include <string.h>
    using namespace std;
    
    class String{
    
    private:
        char * data_;
    public:
        size_t size()const
        {
            return strlen(data_);
        }
        const char * c_str() const{
            return data_;
        }
        //无参的构造函数
        String():data_(new char[1])//初始化类的成员data_,为初始化列表的方式。
        {
            //初始化列表也可以表示为
            // data_=new char[1];
            *data_='';
        }
        //有参的构造函数
        String(const char *str) :data_(new char[strlen(str)+1])
    // strlen(str)必须为常量; { strcpy(data_,str); } String(
    const String & s):data_(new char[s.size()+1]) { strcpy(data_,s.c_str());// 有一个值为const } //析构函数 ~String () { delete[] data_; } //函数返回引用返回的是对象本身 String& operator=(String s) { swap(data_,s.data_); return *this; } };
  • 相关阅读:
    Selenium(一):元素定位
    白盒测试系列(五)条件组合覆盖
    LDAP(轻型目录访问协议)
    Spring Intorduce、History and Design Philosophy
    CORS
    mysql创建用户并授权某个数据库
    Introduce Servlet 、Filter
    web.xml的简单解释以及Hello1中web.xml的简单分析
    ANNOTATION and analyse hello1.java
    Analysis of container and Injection in Java, their history and future.
  • 原文地址:https://www.cnblogs.com/fanhaha/p/7148591.html
Copyright © 2011-2022 走看看