AssignmentOperator
来源:互联网 发布:forest类似的软件 编辑:程序博客网 时间:2024/06/16 19:56
#include<stdio.h>#include<string.h>class CMyString{public:CMyString(char *pData=NULL);//含有无参构造函数CMyString(const CMyString &str);~CMyString();void Print();CMyString& operator=(const CMyString &str); private:char* p_Data;};//当声明一个CMyString str时,构造函数将传入NULL,做好单独写无参构造函数//同时防止传入一个NULL,出现异常CMyString::CMyString(char *pData){if(pData==NULL){p_Data=NULL;}else{int length=strlen(pData);p_Data=new char[length+1];strcpy(p_Data,pData);}}CMyString::CMyString(const CMyString &str){int length=strlen(str.p_Data);p_Data=new char[length+1];strcpy(p_Data,str.p_Data);}CMyString::~CMyString(){delete[] p_Data;}/*CMyString& CMyString::operator=(const CMyString &str){ //自己赋值给自己,直接返回if(this==&str) return *this;delete []p_Data;p_Data=NULL;int length=strlen(str.p_Data);p_Data=new char[length+1];strcpy(p_Data,str.p_Data);return *this;}*/CMyString& CMyString::operator=(const CMyString &str){if(this!=&str){CMyString strTemp(str);//临时变量char* temp=strTemp.p_Data;strTemp.p_Data=p_Data;p_Data=temp;}return *this;}void CMyString::Print(){printf("%s\n",p_Data);}//============Test==============void Test1(){char* text="Hello Wolrd!";CMyString str1(text);CMyString str2(str1);str1.Print();str2.Print();CMyString str3=str1;str3.Print();}void Test2(){char* text="HELLO";CMyString str1(text);str1=str1;str1.Print();CMyString str2,str3;str3=str2=str1;str2.Print();str3.Print();}void main(){Test1();Test2();}
0 0
- AssignmentOperator
- Syntax error on token "&&", invalid AssignmentOperator
- 高并发系统之降级特技
- HDU 2669 Romantic 扩展欧几里得模板题@
- Spark高斯混合模型
- STM32CubeMX:SPI
- 基于memcache的分布式缓存操作
- AssignmentOperator
- Jetty设置请求表单最大值
- 无题
- Android中常常使用shape来定义控件的一些显示属性
- C++转换运算符之const_cast
- ABBYY FineReader 12 能够识别这些文档语言吗
- 202.leetcode Happy Number(easy)[数学 快乐数]
- C#之XML基础 读取一个现有的xml文件,并输出其中的内容
- 如何在阿里云上部署django网站(3)——runserver试运行