C++第二个项目实现(六)

2014-11-24 12:08:19 · 作者: · 浏览: 5
*************/
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;