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

📄 classassignmentoprimp.cpp

📁 data+structures+using+c的源码
💻 CPP
字号:
#include <iostream>
#include <cassert>

#include "classAssignmentOverload.h"

using namespace std;

void cAssignmentOprOverload::print() const
{
	if(length == 0)
		cout<<"List is empty"<<endl;
	else
	{
		for(int i = 0; i < length; i++)
			cout<<list[i]<<" ";
		cout<<endl;
	}
}

void cAssignmentOprOverload::insertEnd(int item)
{
	if(length == maxSize)
		cout<<"List is full"<<endl;
	else
		list[length++] = item;
}

void cAssignmentOprOverload::destroyList()
{
	delete [] list;
	list = NULL;
	length = 0;
	maxSize = 0;
}

cAssignmentOprOverload::cAssignmentOprOverload(int size)
{
	length = 0;

	if(size <= 0)
		maxSize = 10;
	else
	maxSize = size;

	list = new int[maxSize];
	assert(list != NULL);
}


const cAssignmentOprOverload& cAssignmentOprOverload::operator= 
(const cAssignmentOprOverload& otherList)
{
    if(this != &otherList)   //avoid self-assignment; Line 1
    {
		if(list != NULL)				   			//Line 2
			destroyList();							//Line 3
		maxSize = otherList.maxSize;		 		//Line 4
		length = otherList.length;					//Line 5

		if(maxSize != 0)							//Line 6
		{		
			list = new int[maxSize];				//Line 7
			assert(list != NULL);					//Line 8

			for(int i = 0; i < length; i++)			//Line 9
				list[i] = otherList.list[i];		//Line 10
		}
		else						  				//Line 11
			list = NULL;				   			//Line 12
	}

	return *this;					   				//Line 13
}

⌨️ 快捷键说明

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