Array类的构造函数动态分配一个int类型数组

#include <iostream>
using namespace std;
class Array {
public:
  Array(int size)  // 构造函数
  {
    _p = new int[size];
    _size = size;
  }
  ~Array() { delete [] _p; }  // 析构函数
  void SetValue(int index, int value)  // 设置指定元素的值
  {
    if ( IsOutOfRange(index) ) {
      cerr << "Index out of range!" << endl;
      return;
    }
    _p[index]=value;
  }
  int GetValue(int index) const  // 获取指定元素的值
  {
    if ( IsOutOfRange(index) ) {
      cerr << "Index out of range!" << endl;
      return -1;
    }
    return _p[index];
  }
  int GetLength() const { return _size; }  // 获取元素个数
private:
  int *_p;
  int _size;
  bool IsOutOfRange(int index) const  // 检查索引是否越界
  {
    if (index < 0 || index>=_size)
      return true;
    else return false;
  }
};

int main()
{
  Array a(10);
  for (int i = 0; i < a.GetLength(); i++)
    a.SetValue(i, i+1);
  for (int j = 0; j <  a.GetLength()-1; j++)
    cout << a.GetValue(j) << ", ";
  cout << a.GetValue(a.GetLength()-1) << endl;
  return 0;
}

GetValue
获取指定元素的值;
SetValue
将指定元素设置为指定值;
GetLength
获取元素个数…
访问数组时,如果索引值小于0或者大于元素个数,就会 产生越界

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值