2020.3.21 c++强化类的封装

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;

扫描二维码关注公众号,回复: 10102745 查看本文章

    //数组的存在个数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;
}
 

发布了12 篇原创文章 · 获赞 0 · 访问量 66

猜你喜欢

转载自blog.csdn.net/weixin_41604325/article/details/105018790