⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enhancedsafearray.h

📁 ssd5 exam1 答案
💻 H
字号:
//This is the exam one of ssd5.
//The author is liqinwei.
//2007_11_1.
#ifndef ENHANCEDSAFEARRAY_H
#define ENHANCEDSAFEARRAY_H

#include "safearray.h"
using namespace std;


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

public:

	//default constructor
	EnhancedSafeArray(void);

	//single-parameter constructor
	EnhancedSafeArray(int); 

	//Copy constructor
	EnhancedSafeArray(const EnhancedSafeArray&);

	//Returns the number of elements stored 
	int size(void) const;

	//assignment operator("=")
	EnhancedSafeArray<T> operator = (const EnhancedSafeArray &);

	//equality test operator("==")
	bool operator ==(const EnhancedSafeArray &);

};


//default 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(const EnhancedSafeArray<T> &en)
{
	count = en.count;

	storage = new T[count];

	for(int i=0; i<count; i++)
	{

		storage[i] = en.storage[i];

	}
}

//Returns the number of elements stored 
template <class T>
int EnhancedSafeArray<T>::size(void) const
{
	return count;
}

//assignment operator("=")
template <class T>
EnhancedSafeArray<T> EnhancedSafeArray<T>::operator = (const EnhancedSafeArray<T> &en)
{
	if( this != &en)
	{

		if(storage != NULL)
		{
			delete []storage;

		}

		count = en.count;

		storage = new T[count];

		for(int i=0; i<count; i++)
		{

			storage[i] = en.storage[i];

		}
	}
	return *this;

}

//equality test operator("==")
template <class T>
bool EnhancedSafeArray<T>::operator ==(const EnhancedSafeArray<T> &en)
{
	if(count==en.count)
	{

		for(int i=0; i<count; i++)
		{
			if(storage[i] != en.storage[i])
			{
				return false;
			}
		}

		return true;

	}
	else return false;
	
}

#endif

⌨️ 快捷键说明

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