SOL9 2.0 Class: ObjectArray

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * ObjectArray.h 
 * Copyright (c) 2009 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL++2000
#pragma once

#include <sol\Array.h> 

namespace SOL {

class ObjectArray :public Array {
private:
    Object** array;

public:
    ObjectArray(UINT size)
        :Array(size) 
    {
        array = new Object*[size];
        for(UINT i = 0; i<size; i++) {
            array[i] = NULL;
        }
    }

public:
    ~ObjectArray() 
    {
        delete [] array;
    }


public:
    BOOL set(UINT n, Object* object)
    {
        BOOL rc = FALSE;
        if(n <getSize()) {
            array[n] = object;    
            rc = TRUE;
        }
        return rc;
    }

public:
    Object* get(UINT n) 
    {
        Object* object = NULL;
        if(n < getSize()) {
            object = array[n];
        }
        return object;
    }

public:
    void sort(SortDirection dir)
    {
        int length = getSize();

        for (int i = 0; i<length -1; i++) {
            int j = i+1;
            Object*  obj = array[i];
            int  c = 0;
            for(j = i+1; j<length; j++) {
                Object* jthObj = array[j];
                if (dir == ASCENDING) {
                    if (jthObj -> compare(obj) > 0) {
                        c = j;
                        obj = array[j];
                    }    
                }
                if (dir == DESCENDING) {
                    if (jthObj -> compare(obj) < 0) {
                        c = j;
                        obj = array[j];
                    }    
                }
            }

            array[c] = array[i];
            array[i] = obj;
        }    
    }


};

}


Last modified: 19 Dec 2009

Copyright (c) 2009 Antillia.com ALL RIGHTS RESERVED.