前言:
作者简介:大家好,我是翼同学!
个人主页:翼同学的CSDN博客
系列专栏:【C++学习笔记】更新中…
备注:如果文章有误,请指正,万分感谢!让我们一起学习,一起进步。
✅最后:如果文章对您有帮助,请三连支持一下博主哦。
✨功能:
- 添加数据
- 获取数据
- 修改数据
首先是头文件的编写
如下所示:
注意:
在上述的代码中,我们在类的内部直接定义公共接口的方法,这样会使得getCapacity()
和igetSize()
变成为内联函数
具体可参考这篇文章:C++学习笔记(二十):类的入门指南
接下来就是对类内容的具体实现,即myArray.cpp
文件的编写
具体如下:
还有四个成员函数:
最后是源文件的编写
运行结果如下:
完整代码如下:
class myArray {
public:
myArray(); //无参构造函数
myArray(int capacity); //有参构造函数
myArray(const myArray& arr);//拷贝构造函数
~myArray(); //析构函数
void pushBack(int data); //添加数据
int getData(int position); //获取指定位置数据
void setData(int position, int data); //修改指定位置数据
void arrPrint(); //打印数组
int getCapacity() {
//公共接口,获取数组容量
return m_Capacity;
}
int getSize() {
//公共接口,获取数组大小
return m_Size;
}
private:
int m_Capacity; //容量,即数组最多能存放多少数据
int m_Size; //大小,即数组的大小
int* pAddress; //底层维护堆区的数组
};
#include
#include
#include "myArray.h"
using namespace std;
//无参构造函数
myArray::myArray()
{
m_Capacity = 100;
m_Size = 0;
pAddress = new int[m_Capacity];
}
//有参构造函数
myArray::myArray(int capacity)
{
m_Capacity = capacity;
m_Size = 0;
pAddress = new int[m_Capacity];
}
//拷贝构造函数
myArray::myArray(const myArray& arr)
{
m_Capacity = arr.m_Capacity;
m_Size = arr.m_Size;
pAddress = new int[arr.m_Capacity];
for (int i = 0; i < arr.m_Size; i++) {
pAddress[i] = arr.pAddress[i];
}
}
//析构函数
myArray::~myArray()
{
if (pAddress != nullptr) {
delete[] pAddress;
pAddress = nullptr;
}
}
//添加数据到数组尾部
void myArray::pushBack(int data)
{
pAddress[m_Size] = data;
m_Size++;
}
//获取指定位置数据
int myArray::getData(int position)
{
return pAddress[position];
}
//修改指定位置数据
void myArray::setData(int position, int data)
{
pAddress[position] = data;
}
//打印数组
void myArray::arrPrint()
{
cout << "[";
for (int i = 0; i < m_Size; i++) {
cout << getData(i);
if (i != m_Size - 1) cout << ',';
}
cout << "]" << endl;
}
#include
#include "myArray.h"
using namespace std;
int main() {
myArray arr1;
cout << "数组容量为:" << arr1.getCapacity() << endl;
cout << "数组的大小为:" << arr1.getSize() << endl;
cout << "打印数组:\n";
arr1.arrPrint();
cout << "==============================="<<endl;
arr1.pushBack(1);
arr1.pushBack(2);
arr1.pushBack(3);
arr1.pushBack(4);
arr1.pushBack(5);
cout << "添加数据后,数组容量为:" << arr1.getCapacity() << endl;
cout << "添加数据后,数组的大小为:" << arr1.getSize() << endl;
cout << "再次打印数组:\n";
cout << "===============================" << endl;
cout << "改动数组第三个位置的元素后,再次打印数组:\n";
arr1.setData(2, 888);
arr1.arrPrint();
return 0;
}
好了,一个简单的类案例就是这样,功能比较简单,你可以试着完善这个数组类!
欢迎来评论区一起探讨!如果文章对你有帮助,点赞支持是我创作的动力!