enhancedsafearray.h

来自「ssd5 exam1需要的自己下载 ssd5 exam1需要的自己下载」· C头文件 代码 · 共 82 行

H
82
字号
#ifndef EnhancedSafeArray_H
#define EnhancedSafeArray_H

#include <iostream>

using namespace std;

#include"safearray.h"

template<class T>
class EnhancedSafeArray:public SafeArray<T>{

public:
//defualt constructor
	EnhancedSafeArray(void);
//single-parameter constructor 
	EnhancedSafeArray(int size);
//Copy constructor
	EnhancedSafeArray(EnhancedSafeArray& array_1);
//function size
	int size(void) const;
//overload operator ("=")
	void operator =( EnhancedSafeArray & array_2);
//overload operator ("==")
	bool operator ==( EnhancedSafeArray &array_3);
};

//defualt constructor
template<class T>
EnhancedSafeArray<T>::EnhancedSafeArray(void) : SafeArray() {}

//single-parameter constructor 
template<class T>
EnhancedSafeArray<T>::EnhancedSafeArray(int count) : SafeArray<T>(count) {}

//Copy constructor
template<class T>
EnhancedSafeArray<T>::EnhancedSafeArray(EnhancedSafeArray<T>& array_1) {

	count = array_1.size();
	storage = new T[count];

	for(int i=0; i<count; i++) {
		storage[i] = array_1[i];
	}
}

//function size
template<class T>
int EnhancedSafeArray<T>::size() const {
	return count;
}

//overload operator ("=")
template<class T>
void EnhancedSafeArray<T>::operator=( EnhancedSafeArray & array_2) {

	delete []storage;
	count=array_2.size();
	storage=new T[count];
	for(int i = 0; i < count; i++)
	{
		storage[i] = array_2[i];
	}
}

//overload operator ("==")
template<class T>
bool EnhancedSafeArray<T>::operator==( EnhancedSafeArray & array_3) {
    if (count != array_3.size())
		return false;

	for(int i = 0; i < array_3.size(); i++) {

		if(storage[i] != array_3[i])
			return false;
	}

	return true;
}

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?