海涛老师的面试题-作业1-赋值运算符函数
2012-06-25 14:11
330 查看
题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数
View Code
View Code
// CMyString.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <string.h> #include <stdio.h> class CMyString { private: char* m_data; public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); CMyString& operator = (const CMyString& str); void Print(); }; CMyString::CMyString(char* pData) { if(pData==NULL) { m_data=new char[1]; m_data[0]='\0'; } else { int length=strlen(pData); m_data=new char[length+1]; strcpy(m_data,pData); } } CMyString::CMyString(const CMyString& str) { int length=strlen(str.m_data); m_data=new char[length+1]; strcpy(m_data,str.m_data); } CMyString::~CMyString() { delete []m_data; } #if 0 CMyString& CMyString::operator =(const CMyString& str) { if(this==&str) return *this; delete []m_data; m_data=NULL; m_data=new char[strlen(str.m_data)+1]; strcpy(m_data,str.m_data); return *this; } #endif #if 1 CMyString& CMyString::operator =(const CMyString& str) { if(this!=&str) { CMyString Tmp(str); char* pTemp=Tmp.m_data; Tmp.m_data=m_data; m_data=pTemp; } return *this; } #endif void CMyString::Print() { printf("%s\n",m_data); } void Test1( ) { printf("测试正常赋值非空值开始! \n"); char* const_str="helloworld!"; CMyString str(const_str); str.Print(); printf("测试正常赋值非空值结束! \n"); } void Test2( ) { printf("测试赋值给自己开始! \n"); char* const_str="helloworld!"; CMyString str(const_str); str=str; printf("const_str =%s\n",const_str); str.Print(); printf("测试赋值给自己结束! \n"); } void Test3() { printf("测试连等赋值开始! \n"); char* const_str="helloworld!"; CMyString str1(const_str); CMyString str2,str3; str3=str2=str1; printf("const_str =%s\n",const_str); str1.Print(); str2.Print(); str3.Print(); printf("测试连等赋值结束! \n"); } int _tmain(int argc, _TCHAR* argv[]) { Test1(); Test2(); Test3(); return 0; }
相关文章推荐
- 海涛老师的面试题-作业7-栈与队列之间的转换
- 海涛老师的面试题-作业21-包含min函数的栈
- 海涛老师的面试题-作业28-字符串的排列组合问题。
- 海涛老师的面试题-作业5-从尾到头打印链表
- 海涛老师的面试题-作业22-栈的压入、弹出序列
- 海涛老师的面试题-作业6-重建二叉树
- 海涛老师的面试题-作业-链表专题代码及讲解
- 海涛老师的面试题-作业9-也谈斐波那契数列
- 海涛老师的面试题-作业12-打印从1到最大的n位数
- 海涛老师的面试题-作业3-二维数组中的查找
- 海涛老师的面试题-作业27-二叉搜索树与双向链表
- 面试题1:赋值运算符函数
- Emojify - v2 吴恩达老师深度学习第五课第二周编程作业2
- 面试题1:类的赋值运算符函数
- 老师布置的我实训作业一部分:安全登录注册系统
- 大学两年学计算机的感想(一个数据库老师的作业)
- 剑指offer面试题:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。
- 作业 迂者老师得作业 ,关于循环 4000
- 面试题1 赋值运算符函数
- 11-5 数据库加强(dateadd,datediff,datepart case()函数)整理了上课的笔记和老师留的作业