实现一个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; } };
posted @ 2017-07-11 04:44  hahahaf  阅读(457)  评论(0编辑  收藏  举报