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;
}
完成数组的拷贝构造函数,允许两个数组对象互相赋值
#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;
}
相关文章推荐
- 【C++学习】通过输入数来确定一个数组的动态大小
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(7)习题2.8 随机数组的三种生成算法
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 习题2.8 随机数组的三种生成算法(补) 将bash的实现翻译成比较纯正的bash风格
- 每天学习一算法系列(9) (输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果)
- C++学习笔记--指针和多维数组
- C++学习笔记之八 复合类型---指针、数组和指针运算
- 【嵌入式系统学习记录】练习:编写一个函数,求字符数组的前n个字符中最大字符的地址并返回该地址,字符数组和n作为函数的参数;
- C++通过自定义函数找出一个整数数组中第二大数的方法
- Linux-C基础知识学习:C语言作业-将5个学生成绩保存在一个数组中,单独实现一个计算平均成绩的average函数, 在main函数中获取该函数返回的平均值,并打印。
- C++ Primer 学习笔记_15_新旧代码兼容与多维数组
- C++学习之const指针和多维数组
- 在C++中使用C中字符串数组的一个奇怪问题。
- 学习实践:使用模式,原则实现一个C++自动化测试程序
- 请问C++在坐标轴内怎么计算一个长方形和十字形状的面积,用数组保存的坐标点
- 面向对象 C++学习之我之过错
- 发现一个好的学习C++的网址。。
- 让c++ 函数返回一个数组
- C++一个数组实现两个栈
- C++学习(六)——类的学习—PhoneList对象数组程序示例
- 有章法的学习c++(1)编写一个简单的c++程序