一个完整的String类定义以及测试
来源:互联网 发布:方舟生存进化设置优化 编辑:程序博客网 时间:2024/05/12 20:16
一个完整的String类定义以及测试
//---------------------------------------------------------------------------
#include <iostream>
#include "stdio.h"
#include "malloc.h"
#include "string.h"
#include <assert.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
using namespace std;
class String
{
public:
String(char* ptr=NULL)
{
if(ptr==NULL)
{
ptr=new char[1];
ptr[0]='/0';
}
else
{
assert(m_data!=NULL);
int length=strlen(ptr);
m_data=new char[length+1];//使用指针前一定要分配空间。
strcpy(m_data,ptr);
}
}
String(const String& other)
{
int length=strlen(other.m_data);
m_data=new char[length+1];
assert(m_data!=NULL);
strcpy(m_data,other.m_data);
}
String& operator=(String& other)
{
if(this==&other)
return *this;
delete []m_data;
int length=strlen(other.m_data);
m_data=new char[length+1];
assert(m_data!=NULL);
strcpy(m_data,other.m_data);
}
~String()
{
delete []m_data;
}
const char& operator[](int index)
{
int i=0;
while(i++<index);
return *(m_data+i);
}
String& operator+(String& str2)
{
int len1=strlen(this->m_data);
int len2=strlen(str2.m_data);
char* str=new char[len1+len2+1];
strcpy(str,this->m_data);
char* temp=str+len1;
while((*temp++=*str2.m_data++)!='/0')
this->m_data=str;
return *this;
}
int length()
{
return strlen(m_data);
}
friend ostream& operator<<(ostream& os,String& data)
{
os<<data.m_data;
return os;
}
private:
char* m_data;
};
int main(int argc, char* argv[])
{
String str1("Hello,");
String str2("World!");
str1=str1+str2;
cout<<str1<<endl;
cout<<str1.length()<<endl;
String str3("hello ,world!");
cout<<str3[8]<<endl;
system("pause");
return 0;
}
//---------------------------------------------------------------------------
- 一个完整的String类定义以及测试
- 如何定义一个完整的类
- 如何定义一个完整的类
- 第12周项目1 一个定义完整的类
- 创建一个类,它包含一个在定义时就被初始化了的String域,以及另一个通过构造器初始化的String域。这两种方式有何差异
- 定义一个类Demo,其中定义一个求两个数据和的方法,定义一个测试了Test,进行测试。
- String限定类型的HashMap以及一个String工具类
- 一个完整的测试模块驱动程序
- 一个完整的遍历速度测试
- 一个完整的性能测试综述
- 一个完整的Linux测试模块驱动程序
- 一个完整系统的测试过程
- 定义一个长方形类,定义 求周长和面积的方法,然后定义一个测试了Test2,进行测试
- String 类的完整实现
- 一个完整的类
- 性能测试:一个完整的性能测试过程
- 【项目1】实现复数类中的运算符重载---(3)一个定义完整的类
- C++沉思录读书笔记1.如何定义一个完整的类
- 读研一个月
- 端口简介
- 今天很高兴,看到这么多的人关心我的BLOG
- 手动关闭端口的方法
- Java学习之路:不走弯路,就是捷径
- 一个完整的String类定义以及测试
- Java初学者都必须理解的问题
- C语言的printf格式中的-问题(8)
- 第一次来这里感觉不差哦!
- 用hibernate实现数据库底层分页
- 开源软件 SellWin@China客户关系管理系统1.1 发布
- 有关于P2P、BT、Azureus的
- JavaScript变量
- 实习总结报告