|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 bin554385863 于 2019-11-21 02:11 编辑
numbers.h
- #ifndef NUMBERS_H
- #define NUMBERS_H
- #include <iostream>
- #include <initializer_list>
- template <typename tp>
- class numbers
- {
- private:
- size_t numsLen;
- tp *numsPtr;
- public:
- //默认构造
- numbers() : numsLen(0), numsPtr(nullptr) {}
- //使用C风格数字数组构造
- numbers(const tp *arr, const size_t arrSize);
- //可变参数构造
- numbers(std::initializer_list<tp> list);
- //拷贝构造
- numbers(const numbers<tp> &nums);
- /*--------------------------------------------------------*/
- //按索引获取元素;按索引修改元素的值
- tp &at(const size_t index);
- //对象的大小
- size_t size()const;
- /*--------------------------------------------------------*/
- //重载下标运算符
- tp &operator[](const size_t index);
- /*--------------------------------------------------------*/
- //添加元素
- numbers<tp> operator&(const tp num);
- //合并对象
- numbers<tp> operator&(const numbers<tp> &nums);
- /*--------------------------------------------------------*/
- //深度拷贝
- numbers<tp> &operator=(const numbers<tp> &nums);
- friend std::ostream& operator<<(std::ostream& os, numbers<tp>& nums)
- {
- size_t sz = nums.size();
- for (size_t i = 0; i < sz; i++)
- {
- os<<nums[i]<<" ";
- }
- return os;
- }
- ~numbers()
- {
- delete [] numsPtr;
- }
- };
- #endif
复制代码
numbers.cpp
|
|