Offer_1
#include <iostream>
#include <cstring>
using namespace std; class CMyString
{
public:
CMyString(char *m_pData=NULL);
CMyString(const CMyString& str);
~CMyString(void); CMyString& operator=(const CMyString& str); void print();
private:
char *m_pData;
}; CMyString::CMyString(char *m_pData)
{
if(m_pData!=NULL)
{
this->m_pData = new char[strlen(m_pData)+1];
strcpy(this->m_pData, m_pData);
}else{
this->m_pData = NULL;
}
} CMyString::CMyString(const CMyString& str)
{
new (this) CMyString(str.m_pData);
//this->m_pData = new char[strlen(str.m_pData)+1];
//strcpy(this->m_pData, str.m_pData);
} CMyString::~CMyString()
{
if(m_pData!=NULL)
{
delete [] m_pData;
m_pData = NULL;
}
} CMyString& CMyString::operator=(const CMyString& str)
{
if(this!=&str)
{
CMyString strTemp(str);
char * pTemp = strTemp.m_pData;
strTemp.m_pData = m_pData;
m_pData = pTemp;
}
return *this;
} void CMyString::print()
{
if(m_pData!=NULL)
cout<<m_pData<<endl;
} int main()
{
CMyString str("I'm xxxx.");
str.print();
CMyString cpy1 = str;
cpy1.print();
CMyString cpy2 = "hello World";
cpy2.print();
CMyString cpy3;
cpy3 = str;
cpy3.print();
CMyString cpy4, cpy5;
cpy4 = cpy5;
cpy4.print();
CMyString cpy6(cpy5);
return 0;
}
Offer_1的更多相关文章
- 剑指offer_1.24_Day_4
构建乘积数组 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1] ...
- 剑指offer_1.19_Day_3
替换空格 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. Javascript_V8 f ...
- 剑指offer_1.18_Day_2
怠惰怠惰,好好练练了要 二维数组中查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个 ...
- Tagging Physical Resources in a Cloud Computing Environment
A cloud system may create physical resource tags to store relationships between cloud computing offe ...
随机推荐
- 基于hash的文档判重——simhash
本文环境: python3.5 ubuntu 16.04 第三方库: jieba 文件寄于github: https://github.com/w392807287/angelo_tools.git ...
- lightOJ 1317 Throwing Balls into the Baskets
lightOJ 1317 Throwing Balls into the Baskets(期望) 解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/ ...
- BZOJ 1677: [Usaco2005 Jan]Sumsets 求和( dp )
完全背包.. --------------------------------------------------------------------------------------- #incl ...
- SQLserver查询数据类型为ntext是空或NULL值的方法
--为空的值text ntext select * from lf_newsNg_utf where datalength(newsContentE)=0 or datalength(newsCont ...
- (Problem 28)Number spiral diagonals
Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is forme ...
- FormView用法
功能描述: 学生可以对相应学校机构进行投诉建议. form表单 class SuggestForm(forms.Form): TYPE_CHOICES = ( (0, u'学校'), (1, u'学院 ...
- (C)高级排序法
1.快速排序法 //方法1 从大到小 #include <iostream.h> void run(int* pData,int left,int right) { int i,j; in ...
- Java中static、final用法
一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引 ...
- Linux 多线程通信
摘自资料(linux 与Windows不同) 线程间无需特别的手段进行通信,由于线程间能够共享数据结构,也就是一个全局变量能够被两个线程同一时候使用.只是要注意的是线程间须要做好同步,一般用mutex ...
- Activity跳转
本例中MainActivity为:FirstActivity.java FirstActivity如下: package com.wyl.intentmultiactivitytest; import ...