MinGW C++

class IntArray {
public:
// 构造函数
 explicit IntArray( int size = DefaultArraySize );
 IntArray( int *array, int array_size );
 IntArray( const IntArray &rhs );
 // 虚拟析构函数
 virtual ~IntArray() ;
 // 等于和不等于操作
 bool operator==( const IntArray& ) const;
 bool operator!=( const IntArray& ) const;
 IntArray& operator=( const IntArray& );
 int size() const;
 // 去掉了索引检查功能 . . .
 virtual int& operator[](int index);
 virtual void sort();
 virtual int min() const;
 virtual int max() const;
 virtual int find( int value ) const;
protected:
// 参见13.5 节的说明
 static const int DefaultArraySize = 12;
 void init( int sz, int *array );
 int _size;
 int *ia;
};

#include <cassert>
using namespace std;
#ifndef IntArray_H
#define IntArray_H
#include "IntArray.h"
    IntArray::IntArray( int size){
  init(size,0);
 }
 IntArray::IntArray( int *array, int array_size ){
  init(array_size,array);
 }
 IntArray::IntArray( const IntArray &rhs ){
  init( rhs._size, rhs.ia );
 }
 // 虚拟析构函数
 IntArray::~IntArray() {
  delete [] ia;
 }
 // 等于和不等于操作
 bool IntArray::operator==( const IntArray& ) const{
  return true;
 }
 bool IntArray::operator!=( const IntArray& ) const{
  return false;
 }
 IntArray& IntArray::operator=( const IntArray& rhs ){
       _size=rhs._size;
  ia=rhs.ia;
  return *this;
 }
 int IntArray::size() const {
  return _size;
 }
 // 去掉了索引检查功能 . . .
 int& IntArray::operator[](int index) {
  return ia[index];
 }
 void IntArray::sort(){
 }
 int IntArray::min() const{
    return 0;
 }
 int IntArray::max() const{
    return 10;
 }
 int IntArray::find( int value ) const{
    return -1;
 }
 void IntArray::init( int sz, int *array ){
  _size = sz;
  ia = new int[ _size ];
  for ( int ix=0; ix < _size; ++ix )
   if ( ! array )
    ia[ ix ] = 0;
   else
    ia[ ix ] = array[ ix ];
 }
 #endif

posted on 2005-10-29 12:11  老代哥哥  阅读(188)  评论(0编辑  收藏  举报

导航