C++ 深拷贝实例-改变原生数组
2024-09-03 03:32:30
深拷贝
main.cpp
#include <stdio.h>
#include "IntArray.h" int main()
{
IntArray a(); for(int i=; i<a.length(); i++)
{
a.set(i, i + );
} for(int i=; i<a.length(); i++)
{
int value = ; if( a.get(i, value) )
{
printf("a[%d] = %d\n", i, value);
}
} IntArray b = a; for(int i=; i<b.length(); i++)
{
int value = ; if( b.get(i, value) )
{
printf("b[%d] = %d\n", i, value);
}
} a.free();
b.free(); return ;
}
IntArray.cpp
#include "IntArray.h" IntArray::IntArray(int len)
{
m_pointer = new int[len]; for(int i=; i<len; i++)
{
m_pointer[i] = ;
} m_length = len;
} IntArray::IntArray(const IntArray& obj)
{
m_length = obj.m_length; m_pointer = new int[obj.m_length]; for(int i=; i<obj.m_length; i++)
{
m_pointer[i] = obj.m_pointer[i];
}
} int IntArray::length()
{
return m_length;
} bool IntArray::get(int index, int& value)
{
bool ret = ( <= index) && (index < length()); if( ret )
{
value = m_pointer[index];
} return ret;
} bool IntArray::set(int index, int value)
{
bool ret = ( <= index) && (index < length()); if( ret )
{
m_pointer[index] = value;
} return ret;
} void IntArray::free()
{
delete[]m_pointer;
}
IntArray.h
#ifndef _INTARRAY_H_
#define _INTARRAY_H_ class IntArray
{
private:
int m_length;
int* m_pointer;
public:
IntArray(int len);
IntArray(const IntArray& obj);
int length();
bool get(int index, int& value);
bool set(int index ,int value);
void free();
}; #endif
最新文章
- 测试EF6.1.3和OrmLite性能
- CSS魔法堂:hasLayout原来是这样!
- Wordpress去除管理员工具条
- 那些在学习iOS开发前就应该知道的事(part 2)
- 兼容IE与firefox的css 线性渐变(linear-gradient)
- MSDN:Code First 迁移
- KNN算法java实现代码注释
- UltraISO做U盘启动盘教程
- D - 小晴天老师系列——晴天的后花园
- 服务器Hadoop+Hive搭建
- SQL Server 锁机制 悲观锁 乐观锁 实测解析
- R语言-动画
- js 关于日期,字符串转化
- python 进程 线程
- js生成四位随机数的简便方法
- Windows Python requests 详细模块安装方法
- [ExtJS5学习笔记]第三十二节 sencha extjs 5与struts2的ajax交互配置
- CF#483(div2 C)
- android studio发布项目到github
- SQL Server 执行计划解析
热门文章
- PAT甲级代码仓库
- Ubuntu 搭建phpcms
- 分库分表技术演进&;最佳实践
- XGBoost学习笔记1
- bootstrap支持ie8 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
- SpringBoot从1.5.1→2.2.4项目加包扫雷一:Error:(8, 44) java: 程序包org.springframework.boot.web.support不存在
- java-局部变量,成员变量区别
- PTA 1005 Spell It Right
- Magento2 自定义生成日志函数
- 修改Linux中ssh协议中的默认端口号22