classa.h:
#ifndef CLASSA_H
#define CLASSA_H
class classa
{
private:
int capacity;//数组总共能存放的元素个数
int size;//数组实际存放的个数
int *addr;//数组首元素地址
public:
classa();
classa(int capacity);
~classa();
//往数组的尾部插入数据
void pushBack(int data);
//获得指定位置的数据
int getData(int pos);
//修改指定的值
void setData(int pos,int data);
//获取数组的容量(能存放的最大元素个数)
int getCapacity(void);
//获取数组的实际大小(实际元素的个数)
int getSize(void);
//遍历数组成员
void printMyArray(void);
};
#endif // CLASSA_H
classa.cpp:
#include "classa.h"
#include<iostream>
using namespace std;
classa::classa()
{
//假如数组的容量为100
this->capacity = 100;
//数组的存在个数size为0;
this->size= 0;
//根据容量 给数组申请空间
this->addr = new int[this->capacity];
}
classa::classa(int capacity)//有参构造
{
this->capacity=capacity;
this->size=0;
this->addr=new int[this->capacity];
}
classa::~classa()
{
if(this->addr!=NULL)
{
delete [] addr;
this->addr=NULL;
}
}
//往数组的尾部插入数据
void classa::pushBack(int i)
{
//判断数组是否满了
if(this->size >= this->capacity)
{
cout<<"数组已满"<<endl;
return;
}
addr[this->size]=i;
this->size++;
}
//获得指定位置的数据
int classa::getData(int pos)
{
if(pos >= this->size || pos<0)//判断pos是否属于这个范围
{
cout<<"位置无效"<<endl;
return -1;
}
return addr[pos];
}
//修改指定的值
void classa::setData(int pos, int data)
{
if(pos >= this->size || pos<0)//判断pos是否属于这个范围
{
cout<<"位置无效"<<endl;
return;
}
addr[pos]=data;//将修改的数据赋值给addr成员数组
return;
}
//获取容量大小
int classa::getCapacity()
{
return this->capacity;
}
//获取实际所处的容量
int classa::getSize()
{
return this->size;
}
//遍历数组成员
void classa::printMyArray()
{
int i=0;
for(i=0;i<this->size;i++)
{
cout<<this->addr[i]<<" ";
}
cout<<endl;
}
main.cpp:
#include <iostream>
#include"classa.h"
using namespace std;
void test001()
{
classa arr1;
cout<<"容量"<<arr1.getCapacity()<<endl;
cout<<"大小"<<arr1.getSize()<<endl;
classa arr2(50);
cout<<"容量:"<<arr2.getCapacity()<<endl;
cout<<"大小:"<<arr2.getSize()<<endl;
//往数组内写入数据
int i=0;
for(i=0;i<20;i++)
{
arr2.pushBack(i);
}
cout<<"容量:"<<arr2.getCapacity()<<endl;
cout<<"大小:"<<arr2.getSize()<<endl;
//遍历数组
arr2.printMyArray();
//更改pos=9的数值 2000
arr2.setData(9,2000);
arr2.printMyArray();
//得到下标为9的值
cout<<arr2.getData(9)<<endl;
}
int main(int argc, char *argv[])
{
test001();
return 0;
}