实现一个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_='\0';
    }
    //有参的构造函数
    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; } };

转载于:https://www.cnblogs.com/fanhaha/p/7148591.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值