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 ...
随机推荐
- [Swust OJ 797]--Palindromic Squares(回文数水题)
题目链接:http://acm.swust.edu.cn/problem/797/ Time limit(ms): 1000 Memory limit(kb): 10000 Description ...
- vmware能够ping通内网,上不了外网的解决方法
一般这是由于里面的路由域名服务器没有配置好. issta@ubuntu:~$ ping www.baidu.com ping: unknown host www.baidu.com 先看一下地址解析器 ...
- BZOJ 1692: [Usaco2007 Dec]队列变换( 贪心 )
数据 n <= 30000 , 然后 O( n² ) 的贪心也过了..... USACO 数据是有多弱啊 = = ( ps : BZOJ 1640 和此题一模一样 , 双倍经验 ) ------ ...
- YII框架实现排序
YII框架实现排序 用YII2实现批量修改排序功能,如下图 控制器: /** * Lists all CollectionAlbum models. * @return mixed */ public ...
- Laravel 5.1 ACL权限控制 四 之middleware
1.创建Middleware php artisan make:middleware MustBeAnAdmin 2.实现 MustBeAnAdmin.php中的handle方法,判断登录的用户是否为 ...
- Apache中RewriteCond规则参数介绍(转)
CodeIgniter2.0已经出来有20多天了呢~也就是我一直用的php框架(CI).一直都在研究jquery,倒是把CI给忘到一边去了,呵呵~~今天公司事情不是很多,于是开始熟悉一下CI2.0的一 ...
- Android项目增加混淆
主要介绍向Android项目中添加混淆功能 增加混淆的原因 提高安全性,增加反编译的难度 减少APK的文件大小 实践 混淆的配置 一般情况下,app module 的 build.gradle 文件默 ...
- elk工作原理
这个配置文件,是读取nginx日志写入到redis zjtest7-redis:/usr/local/logstash-2.3.4/config# cat logstash_agent.conf in ...
- Java中static、final用法
一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引 ...
- 【转】 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比、实现对比
梯度下降(GD)是最小化风险函数.损失函数的一种常用方法,随机梯度下降和批量梯度下降是两种迭代求解思路,下面从公式和实现的角度对两者进行分析,如有哪个方面写的不对,希望网友纠正. 下面的h(x)是要拟 ...