为下面的my_string类创建一个复制构造函数,并将定义该类的代码提交。

my_string类的定义:

class my_string {
char *s;
public:
my_string(char *str) {
s = new char[strlen(str)+1];
strcpy(s, str);
}
~my_string() {
if(s) delete [] s;
cout << "Freeing s\n";
}
void show() { cout << s << "\n"; }
};

裁判测试程序样例:

#include <iostream>
#include <cstring>
using namespace std;
// 你提交的代码将被嵌入到这里 int main()
{
char str[80];
cin>>str;
my_string obj(str); my_string ob1(obj);
my_string ob2=ob1; ob1.show();
ob2.show(); return 0;
}

输入样例:

ByeBye

输出样例:

ByeBye
ByeBye
Freeing s
Freeing s
Freeing s

代码如下:
#include <iostream>
#include <cstring>
using namespace std;
class my_string {
char *s;
public:
my_string(char *str)
{
s = new char[strlen(str)+];
strcpy(s, str);
}
my_string(const my_string &obj) //复制构造函数
{
s = new char[strlen(obj.s)+];
strcpy(s,obj.s);
}
~my_string() {
if(s) delete [] s;
cout << "Freeing s\n";
}
void show() { cout << s << "\n"; }
}; int main()
{
char str[];
cin>>str;
my_string obj(str); my_string ob1(obj);
my_string ob2=ob1; ob1.show();
ob2.show();
}
  

最新文章

  1. MODI与VB6
  2. Python安装时报缺少DLL的解决办法
  3. 1_UILabel
  4. xml note
  5. Android中的各种单位
  6. Win7平台下React-Native开发之Android项目打包发布流程
  7. JSONP的小示例
  8. java 开发, jdk 1.6 官方下载地址
  9. 开发板上修改时间方法date命令【转】
  10. Yii 权限分级式访问控制实现(非RBAC法)
  11. 将汉字转化为拼音,正则表达式和得到汉字的Unicode编码
  12. 手把手教你从 Core Data 迁移到 Realm
  13. 队列详解及java实现
  14. oracle的在没有安装服务端连接远处服务端的方法
  15. Java之集合(十二)TreeMap
  16. 对/proc/cpuinfo文件下的各个参数的说明及实践
  17. scala学习6--collection
  18. Web测试系列之测试工具
  19. MyBatis框架的使用及源码分析(九) Executor
  20. [BZOJ1494]生成树计数

热门文章

  1. 【1】Django概述
  2. 1.VMware虚拟机的安装
  3. fzu 2132
  4. 论文WAN Optimized Replication of Backup Datasets Using Stream-Informed Delta Compression
  5. POJ 2029
  6. 怎样在QML中使用multitouch
  7. HDU 3340 Rain in ACStar(线段树+几何)
  8. 扩展函数之 IsWhat 简单好用
  9. STEM教育是什么?
  10. 委托delegate,Action,Func,Predicate