编写String类

翻译 2012年03月26日 20:36:02
class String
{
    public:
        String(const char *src = NULL);//构造函数 
        String(const String &other);//拷贝构造函数
        ~String(void);//析构函数
        String & operator =(const String &other);//赋值函数
        void ShowString();
    private:
            char *m_data; 
};

//String 的构造函数 
String::String(const char *src)
{
    if(src == NULL)//当初始化串不存在的时候,为m_data申请一个空间存放'\0';
    {
        m_data = new char[1];
        *m_data = '\0';
    }
    else//当初始化串存在的时候,为m_data申请同样大小的空间存放该串;
    {
        int length = strlen(src);
        m_data = new char[length+1];
        strcpy(m_data,src);
    }    
}
//析构函数 
String::~String()
{
    delete [] m_data;//析构函数释放地址空间 
}
//拷贝构造函数 ,功能与构造函数类似 
String::String(const String &other)
{
    int length = strlen(other.m_data);
    m_data = new char[length + 1];
    strcpy(m_data,other.m_data);
}
//赋值函数 
String& String::operator = (const String &other)
{
    if(this == &other)return *this;//当地址相同时,直接返回
    delete [] m_data;//当地址不同时,删除原来申请的空间,重新开始构造 
    int length = strlen(other.m_data);
    m_data = new char[length + 1];
    strcpy(m_data,other.m_data);
    return *this;
}
void String::ShowString()//由于m_data是私有成员,对象只能通过public成员函数来访问 
{
    cout<<this->m_data<<endl;
}
int main()
{
    String s1;
    char *p = "ABCDEFGH";
    String s2(p);
    s1.ShowString();
    s1 = s2;
    s2.ShowString();
    system("pause");
    return 0;
}

自己写的String类

1:MyString.h #pragma once class myCString { public: int GetLength()const {return m_nLength;} ...
  • djb100316878
  • djb100316878
  • 2014年12月01日 08:49
  • 1231

编写一个自定义的String类

一、简介        C++标准库中包含一个string类,提供了一套封装好的数据以及处理这些数据的函数。为了熟悉这个类的内存管理情况,实现一下自定义的String类,涉及构造函数、复制构造函数、...
  • taiyang1987912
  • taiyang1987912
  • 2015年02月04日 23:00
  • 2697

编写类string的构造函数、析构函数和赋值函数

#include using namespace std; class String { public: String(const char *str=NULL); //普通构...
  • qq_21905401
  • qq_21905401
  • 2016年08月21日 16:04
  • 540

编写类String原型

http://shansun123.iteye.com/blog/399933 http://blog.csdn.net/zhuimengzh/article/details/6708882   ...
  • liuenyi2007
  • liuenyi2007
  • 2013年10月30日 13:06
  • 1288

MyString类的实现

string类在c++中使得程序员对于字符串的操作更加方便,今天就来编写自己的MyString类。    先来看mystring.h的定义: #ifndef _MYSTRING_H_ #defin...
  • ooooo12345re
  • ooooo12345re
  • 2016年04月14日 21:43
  • 775

126.自己编写String类

126.已知类String 的原型为: class String { public: String(const char *str = NULL); // 普通构造函数 String(const...
  • HelloNiGeSB
  • HelloNiGeSB
  • 2016年06月29日 13:31
  • 216

C++ MyString类的简单实现

题目:string类的简单实现,本文中此类名为MyString 实现思路: 1 只要构造函数执行成功(其中pData_不为空) 2 构造函数可通过char*,字符串常量构造 3 重载运算符=(返回值为...
  • u013507368
  • u013507368
  • 2015年08月30日 22:55
  • 2323

抽象类(汽车问题)

1)编写一个Car类,具有: 属性:品牌(mark)——String类型 功能:驾驶(void drive( )) 2)定义Car类的子类SubCar,具有: ...
  • ytfunnysite
  • ytfunnysite
  • 2017年02月11日 10:48
  • 520

关于String类之toString()方法的细节

Object是所有类的父类,编译器在编译我们的自定义类文件时,会自动将Object类加入到我们的class文件中,toString()是定义在Object中的一个方法,String类是Object的子...
  • jiaobuchong
  • jiaobuchong
  • 2015年07月23日 11:15
  • 5012

Java开发常用工具类

package com.cucpay.tradeportal.util; import java.io.UnsupportedEncodingException; import java...
  • z69183787
  • z69183787
  • 2014年04月17日 13:17
  • 4789
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编写String类
举报原因:
原因补充:

(最多只允许输入30个字)