您的位置:首页 > 编程语言 > C语言/C++

C++面向对象的学习:写一个数组类

2017-09-18 09:38 225 查看
写一个数组类,实现相关函数,自定义构造函数能设置数组大小,获取数组长度,获取数组的元素,

完成数组的拷贝构造函数,允许两个数组对象互相赋值

#ifndef __MYARRAY_H__
#define __MYARRAY_H__

class Array
{
public:
Array(int len)
{
m_len = len;
m_arr = new int[len];
}
~Array()
{
if(m_arr != NULL)
{
delete []m_arr;
m_arr = NULL;
}
}
Array(const Array &obj);
int length();
void setData(int index, int data);
int getData(int index);
private:
int m_len;
int *m_arr;
};

#endif //__MYARRAY_H__

#include <stdio.h>
#include "MyArray.h"

int Array::length()
{
return m_len;
}

void Array::setData(int index, int data)
{
m_arr[index] = data;
}

int Array::getData(int index)
{
return m_arr[index];
}

Array::Array(const Array &obj)
{
int i;
m_len = obj.m_len;
m_arr = new int[obj.m_len];
for(i=0; i<obj.m_len; i++)
{
m_arr[i] = obj.m_arr[i];
}
}

#include <iostream>
#include "MyArray.h"

using namespace std;

int main()
{
Array a1(10);

for (int i=0; i<a1.length(); i++)
{
a1.setData(i, i);
}

cout<<"\n打印数组a1: ";
for (int i=0; i<a1.length(); i++)
{
cout<<a1.getData(i)<<" ";
}
cout<<endl;

// 完成数组的拷贝构造函数,允许两个数组对象互相赋值
Array a2 = a1;
cout<<"\n打印数组a2: ";
for (int i=0; i<a2.length(); i++)
{
cout<<a2.getData(i)<<" ";
}
cout<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐