const PersonSet& operator=(const PersonSet& p);
/*******************************************
函数名称: void add(Person& element);
函数功能:添加元素
传入参数:N/A
返回 值 :N/A
********************************************/
void add(Person& element);
/*******************************************
函数名称:Person& nextElement();
函数功能:遍历元素
传入参数:N/A
返回 值 :N/A
********************************************/
Person& nextElement();
/*******************************************
函数名称:Person& removeElement();
函数功能:删除元素,从后向前,依次删除
传入参数:N/A
返回 值 :N/A
********************************************/
Person& removeElement();
/*******************************************
函数名称:Person& removeElement(int index);
函数功能:删除指定元素
传入参数:N/A
返回 值 :N/A
********************************************/
Person& removeElement(int index);
/*******************************************
函数名称:int size();
函数功能:得到实际的个数
传入参数:N/A
返回 值 :N/A
********************************************/
int size();
/*******************************************
函数名称: void print();
函数功能:print功能
传入参数:N/A
返回 值 :N/A
********************************************/
void print()const;
/*******************************************
函数名称: void reset();
函数功能:重置_index=0
传入参数:N/A
返回 值 :N/A
********************************************/
void reset();
/*******************************************
函数名称: ~PersonSet();
函数功能:析构函数
传入参数:N/A
返回 值 :N/A
********************************************/
~PersonSet();
/*******************************************
函数名称: Person& operator[](int x);
函数功能:重载下标运算符
传入参数:N/A
返回 值 :N/A
********************************************/
Person& operator[](int x);
/*******************************************
函数名称: const Person& operator[](int x)const;
函数功能:重载不可修改的下标运算符
传入参数:N/A
返回 值 :N/A
********************************************/
const Person& operator[](int x)const;
};
#endif
/***************************************************
文件名称:PersonSet.cpp
作 者:zz
备 注:PersonSet的实现文件
创建时间:2012-4-1
修改历史:2012-4-5
版权声明:CSDN
***************************************************/
#include "PersonSet.h"
using namespace std;
#include
#include
#include "Person.h"
/*******************************************
函数名称:PersonSet();
函数功能:默认构造函数
传入参数:N/A
返回 值 :N/A
********************************************/
PersonSet::PersonSet(){
_size=0;
_capacity=4;
_index=0;
_elements=new Person*[_capacity];
}
// PersonSet:: PersonSet(Person& p){
// }
/*******************************************
函数名称: void add(Person& element);
函数功能:添加元素
传入参数:N/A
返回 值 :N/A
********************************************/
void PersonSet::add(Person& element){
if(_size==_capacity){
Person** temp= _elements;
_elements=new Person*[_capacity*2];
for(int i=0;i<_size;i++){
_elements[i]=temp[i];
}
_capacity*=2;
delete []temp;
}
_elements[_size++]=&element;
}
/*******************************************
函数名称:Person& nextElement();
函数功能:遍历元素
传入参数:N/A
返回 值 :N/A
********************************************/
Person& PersonSet::nextElement(){
if(_index>_size){
_index=0;