enhancedsafearray1.h

来自「ssd5 数据结构与算法 EXAM1 敬请参考下」· C头文件 代码 · 共 97 行

H
97
字号
//: EnhancedSafeArray.h
// inherite from class SafeArray
#ifndef EnhancedSafeArray_H
#define EnhancedSafeArray_H

using namespace std;

#include"safearray.h"

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

public:
	EnhancedSafeArray(void);
	EnhancedSafeArray(int);
	EnhancedSafeArray(EnhancedSafeArray<T>& arrayA);

	int size(void) const;

	EnhancedSafeArray<T>& operator =(EnhancedSafeArray<T>& arrayB);
	bool operator ==(EnhancedSafeArray<T>& arrayC);
};

//defualt constructor

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

//single-parameter constructor 

template<class T>
EnhancedSafeArray<T>::EnhancedSafeArray(int count) : SafeArray<T>(count) {}

//Copy constructor

template<class T>
EnhancedSafeArray<T>::EnhancedSafeArray(EnhancedSafeArray<T>& arrayA)
{

	count = arrayA.count;
	storage = new T[count];
	for(int i=0; i<count; ++i) 
	{

		storage[i] = arrayA.storage[i];
	}
}


//function size

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



template<class T>
EnhancedSafeArray<T>& EnhancedSafeArray<T>::operator=(EnhancedSafeArray<T>& arrayB) {

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

		storage[i] = arrayB.storage[i];
	}
	return * this;
}



template<class T>
bool EnhancedSafeArray<T>::operator==(EnhancedSafeArray<T>& arrayC){


	if (count != arrayC.count)
		return false;
	else 
	{
		for(int i = 0; i < arrayC.count; ++i){

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

	return true;
	}

	
}

#endif

⌨️ 快捷键说明

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