头文件实现:
#pragma once
#ifndef MYCHAR_S_H
#define MYCHAR_S_H
#include<iostream>
#include<string>
using namespace std;
class myChar_s
{
//重载<<输出符号,输出字符串
friend ostream& operator<<(ostream &cout,myChar_s& p);
//重载输入>>符号,输入字符串 实现修改字符串
friend istream& operator>>(istream &cin,myChar_s&p);
public:
//初始化字符串
myChar_s(char * str);
//拷贝构造函数
myChar_s(const myChar_s& mychar_s);
//析构函数
~myChar_s();
//重载= 成员函数 p1=p2 深拷贝,自带的值拷贝不够用
myChar_s& operator=(const myChar_s& p);
//重载= 成员函数 p1=string,自带的值拷贝不够用
myChar_s& operator=(const char * str);
//p1[index] = 返回值本身,且能输出该位字符
char& operator[](int index);
//重载+号 字符串拼接 p1+p2 p1+string
myChar_s operator+(myChar_s& p);
//p1+string
myChar_s operator+(char * str);
//重载判断符号 == !=
bool operator==(const myChar_s& p);
bool operator!=(const myChar_s& p);
//字符串之间的对比 p1和string
bool operator==(const char * str);
bool operator!=(const char * str);
private:
char * fp;//指向堆空间,字符串的头
int size;//字符串的大小不包括'\0'
};
#endif
头文件实现
#include"myChar_s.h"
//char * fp;//指向堆空间,字符串的头
//int size;//字符串的大小不包括'\0'
//重载<<输出符号,输出字符串
ostream& operator<<(ostream &cout,myChar_s& p)
{
cout