一、在C++语言中可以采用类库中String类进行相应的操作,本文通过手写字符串类的构造函数,析构函数,运算符重载模拟字符串相应的操作。
二、定义MyString.h MyString,和main.cpp来进行模拟测试(编译环境VS2015)
2.1 MyString.h类头文件
#pragma once
#include<iostream>
using namespace std;
class MyString
{
public:
MyString();
MyString(const char *p);
MyString(const MyString& s);
~MyString();
private:
int m_len;
char *m_p;
};
2.2 MyString类
#define _CRT_SECURE_NO_WARNINGS
#include "MyString.h"
//构造函数
MyString::MyString()
{
m_len = 0;
m_p = new char[m_len + 1];
strcpy(m_p, "");
}
//含参数的构造函数
MyString::MyString(const char *p)
{
if (p==NULL)
{
m_len = 0;
m_p = new char[m_len + 1];
strcpy(m_p,"");
}
else
{
m_len = strlen(p);
m_p = new char[m_len + 1];
strcpy(m_p,p);
}
}
//拷贝构造函数
MyString::MyString(const MyString& s)
{
m_len = s.m_len;
m_p = new char[m_len + 1];
strcpy(m_p,s.m_p);
}
MyString::~MyString()
{
if (m_p==NULL)
{
delete [] m_p;
m_p = NULL;
m_len = 0;
}
}
2.3 main.cpp(测试函数)
#include<iostream>
#include"MyString.h"
using namespace std;
void main()
{
MyString s1;
MyString s2("12");
MyString s3 = s2;
system("pause");
}