- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LectureNotesS2-4LectureNotesS2-4
3月19日(No. 4周)
本周内容:运算符重载(+、[]、-、*、/、=)
下周预告:运算符重载(++、--、)
已经覆盖的内容
类定义(private/public 成员变量 + 成员函数)
创建一个对象
特殊成员函数:构造函数(默认、拷贝、重载)
特殊成员函数:析构函数(浅拷贝、深拷贝)
现在的代码
#ifndef DYNAMICARRAY_H_
#define DYNAMICARRAY_H_
class DynamicArray{
private:
int *_data; // memory to store data
int _capacity; // total cells available in data
int _size; // total number of elements store in data
public:
DynamicArray(int capacity = 16);
DynamicArray(int *other, int size);
DynamicArray(const DynamicArray other);
void add(int x);
int capacity();
int size();
void print();
~DynamicArray();
};
#endif #includeDynamicArray.h
#includeiostream
using namespace std;
DynamicArray::DynamicArray(int capacity)
{
if(capacity = 0)
capacity = 16;
_capacity = capacity;
_data = new int[_capacity];
_size = 0;
cout Created with DynamicArray(int size)\n;
}
DynamicArray::DynamicArray(int *other, int size)
{
cout Created with DynamicArray(int *other, int size)\n;
if( other size 0 ){
_capacity = (size / 16 + 1) * 16;
_data = new int[_capacity];
for(int i = 0; i size; i++){
*( _data + i ) = *( other + i );
}
_size = size;
}else{
DynamicArray(16);
}
}
DynamicArray::DynamicArray(const DynamicArray other){
if(this != other){
_capacity = other._capacity;
_size = other._size;
_data = new int[_size];
for(int i = 0; i other._size; i++)
*(_data + i) = *(other._data+i);
}
}
void DynamicArray::add(int x)
{
if( _size+1 _capacity ){
// apply a new memory area
_capacity = _capacity + 16;
int *temp = new int[_capacity];
for(int i = 0; i _size; i++)
*(temp+i) = *(_data+i);
*(temp+_size) = x;
_size++;
delete _data;
_data = temp;
}else{
*(_data + _size) = x;
_size++;
}
}
int DynamicArray::capacity(){
return _capacity;
}
int DynamicArray::size(){
return _size;
}
void DynamicArray::print(){
cout data[] = { ;
for(int i = 0; i _size; i++){
cout *(_data+i) ( (_data+i) ),;
}
cout }\n;
}
DynamicArray::~DynamicArray(){
您可能关注的文档
- Kansas_State_University-堪萨斯州立大学.doc
- Kaplan reading(P189-196).doc
- KAZAKHSTAN info.docx
- K8电销系统操作规范手册(2016最新版).doc
- KA业务岗位职责及工作流程.doc
- KA卖场操作实战手册.doc
- KCTC Geo 160 test 1.doc
- keepaliced+nginx安装配置.docx
- KDOQI GUIDELINE 11. ASSOCIATION OF LEVEL OF GFR WITH NEUROPATHY.doc
- KAMS-日终清算操作手册.docx
- 2024年江西省寻乌县九上数学开学复习检测模拟试题【含答案】.doc
- 2024年江西省省宜春市袁州区数学九上开学学业水平测试模拟试题【含答案】.doc
- 《GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语》.pdf
- 中国国家标准 GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语.pdf
- GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- 《GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构》.pdf
- 中国国家标准 GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 中国国家标准 GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 《GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南》.pdf
最近下载
- 小学一年级家长会语文老师PPT课件1_图文.ppt
- 奥鹏云南开放大学 小学语文案例教学(20秋)形考作业4(客观).doc VIP
- 沅陵大曲酒厂续建项目(重大变更) 环境影响报告书.pdf
- SH∕T 1541.1-2019 塑料颗粒外观试验方法 第1部分:目测法.pdf
- 泳池清洁机器人.pdf VIP
- 中职高考语文二轮复习写作技巧专项突破专题01 应用文写作-技巧与练习(含详解).docx VIP
- (人教版)数学三年级上册计算题“天天练”习题卡,含100份题组,附参考答案.doc
- 【新教材】人教PEP版(2024)三年级上册英语Unit 1 Making friends单元整体教学设计.docx
- 乡村学校德育工作实践.docx VIP
- “国家中小学智慧教育平台”培训方案(2).doc
文档评论(0)