运算符重载的简单程序为什么不对称

2024年09月19日 阅读 (50)

#include"myarray.h"

Array::Array(intlength)

{

if(length< 0){

length= 0;

}

m_length =length;

m_space =newint[m_length];

}

//重写拷贝构造函数

Array::Array(constArray&obj){

this->m_length =obj.m_length;

this->m_space =newint[this->m_length];

for(inti = 0; i

this->m_space[i] =obj.m_space[i];

}

}

Array::~Array(){

if(m_space !=NULL){

delete[]m_space;

m_space =NULL;

m_length = -1;

}

}

//a1.setData;

voidArray::setData(intindex,intvalude){

m_space[index] =valude;

}

intArray::getData(intindex){

returnm_space[index];

}

intArray::length(){

returnm_length;

}

// a = 1,因为要当左值使用,所以要返回引用

int&Array::operator[](inti){

returnm_space[i];

}

//a2 = a1;

Array&Array::operator=(Array&a1){

if(this->m_space !=NULL){

delete[]m_space;

m_length = 0;

}

m_length =a1.m_length;

m_space =newint[m_length];

for(inti = 0; i

m_space[i] =a1[i];//因为已经重载了[]操作符

}

return*this;

}

//if

boolArray::operator==(Array&a1){

if(this->m_length !=a1.m_length){

returnfalse;

}

for(inti = 0; i

if(this->m_space[i] !=a1[i]){

returnfalse;

}

}

returntrue;

}

boolArray::operator!=(Array&a1){

郑重声明:玄微运势的内容来自于对中国传统文化的解读,对于未来的预测仅供参考。