StaicArray
2024-05-21 00:15:29
文章目录
- 1 StaticArray设计要点
- 2 继承关系图和接口实现
- 3 代码实现
1 StaticArray设计要点
类模板
- 封装原生数组
- 使用模板参数决定数组大小
- 实现函数返回数组长度
- 拷贝构造和赋值操作
2 继承关系图和接口实现
继承关系图
接口实现
template < typename T, int N >
class StaticArray : public Array<T>
{protected:T m_space[N];public:StaticArray();// 拷贝和赋值操作StaticArray(const StaticArray<T, N>& obj);StaticArray<T, N>& operator= (const StaticArray<T, N>& obj);int length() const;
};
3 代码实现
StaticArray.h
#ifndef STATICARRAY_H
#define STATICARRAY_H#include "Array.h"namespace LemonLib {template < typename T, int N >
class StaticArray : public Array<T>
{protected:T m_space[N];public:StaticArray(){this->m_array = m_space;}// 拷贝和赋值操作StaticArray(const StaticArray<T, N>& obj){this->m_array = m_space;for (int i=0; i<N; i++){m_space[i] = obj.m_space[i];}}StaticArray<T, N>& operator= (const StaticArray<T, N>& obj){if (this != &obj){for (int i=0; i<N; i++){m_space[i] = obj.m_space[i];}}return *this;}int length() const{return N;}
};
}#endif // STATICARRAY_H
main.cpp
#include <iostream>
#include "Object.h"
#include "Exception.h"
#include "List.h"
#include "Seqlist.h"
#include "Staticlist.h"
#include "Dynamiclist.h"
#include "Staticarray.h"using namespace std;
using namespace LemonLib;int main()
{StaticArray<int, 5> sa;for (int i=0; i<sa.length(); i++){sa[i] = i;}for (int i=0; i<sa.length(); i++){cout << sa[i] << endl;}StaticArray<int, 5> sa1 = sa;for (int i=0; i<sa1.length(); i++){cout << sa1[i] << endl;}StaticArray<int, 5> sa2;sa2 = sa;for (int i=0; i<sa2.length(); i++){cout << sa2[i] << endl;}sa[9] = 0;return 0;
}
参考资料:
- 数据结构实战开发教程
StaicArray相关推荐
最新文章
- 面试高频——JUC并发工具包快速上手(超详细总结)
- 吴琦:视觉-语言导航新进展:Pre-training 与 Sim2Real | 青源 Talk 第 12 期
- 接口中定义变量必须为public static final的原因
- UA OPTI512R 傅立叶光学导论17 离散傅立叶变换简介
- Django使用心得(二)
- 进击的UI------------网络判断
- gdb查看空指针 linux_5 个鲜为人知 GNU 调试器(GDB)技巧
- 解决:elasticsearch 更新报错:The number of object passed must be even but was [1]
- java中一个线程最小优先数_Java线程的优先级
- inputstreamreader未关闭会导致oom_ThreadLocal 一定会导致内存泄露?
- 宝元系统通讯软件recon_企业即时通讯工具需注意哪些问题
- python判断用户名密码是否正确_Python 判断输入的用户名和密码是否正确
- oracle jta,JTA和两阶段提交,处理全局事务
- FDM 3D打印机常见故障列总 挨个排除
- 中国宠物医疗市场产业消费需求及盈利前景预测报告(2022-2027年)
- OpenCV入门系列1:图像组成与OpenCV基本操作函数
- imap 已读回执_确保同事看到已读回执和延迟提醒电子邮件的“重要电子邮件”...
- Android 优惠券功能开发
- 做一个从不废话的程序员之基础中的基础
- css实现图片等宽高
热门文章
- sharp扫地机器人讲话_扫地机机器人,智能扫地机器人推荐
- 【Paper】2021_Observer-Based Controllers for Incrementally Quadratic Nonlinear Systems With Disturbanc
- 【STM32】输入捕获实验代码详解
- 成员函数和成员变量分开存储
- 【工具】PlatformIO终于能用了,arduino大型项目开发环境PIO,编辑器+编译器+调试全功能...
- 关于STM32像EPROM一样可以单字节写内部Flash的理解
- C1之路 | 训练任务03-WEB
- java 自适应响应式 网站 源码 SSM 生成 静态化 手机 平板 PC
- CSS学习之多类别选择器
- vue学习笔记(三)