2019年3月14日 星期四

【CMoney - HW4】改寫程式

1


#include <iostream>
using namespace std;
#define MAXLENGTH 8

class IntArray
{
private:
    int size;
    int * data;
 
public:
IntArray( int size1 );
~IntArray();
// void Init( int size1 ); 
//    void Delete();
    void output();
 
    friend void ToFibonacci( IntArray & array );
    friend void ToFibonacciByPtr( IntArray * array);
};

IntArray::IntArray( int size1){
    size = size1;
    data = new int[size1]; 
    for ( int i = 0; i < size1; i++ )
        data[i] = 0;
}
IntArray::~IntArray(){
    size = 0;
    if ( data != NULL ) {
        delete [] data;
        data = NULL;
    }
}
//void IntArray::Init( int size1 )
//{
//    size = size1;
//    data = new int[size1]; 
//    for ( int i = 0; i < size; i++ )
//        data[i] = 0;
//}

//void IntArray::Delete(){
//    size = 0;
//    if ( data != NULL ) {
//        delete [] data;
//        data = NULL;
//    }
//} 
void IntArray::output(){
    for ( int i = 0; i < size; i++ )
        cout << data[i] << " ";
    cout << endl;
}
void ToFibonacci( IntArray & array ){
    array.data[0] = 0;
    array.data[1] = 1;
    for ( int i=2; i<array.size; i++ )
        array.data[i] = array.data[i-2] + array.data[i-1] ;
}
void ToFibonacciByPtr( IntArray * array){
array->data[0]= 0;
array->data[1]= 1;
    for ( int i = 2; i < array->size; i++ )
        array->data[i] = array->data[i-2] + array->data[i-1] ;
}
int main(int argc, char** argv) {

// C++全方位學習-第三版 P.380
IntArray a(12);
IntArray b(20);


// a.Init(12);
ToFibonacci(a);
a.output();


// b.Init(20);
ToFibonacciByPtr( &b );
b.output();


// a.Delete();
// b.Delete();
return 0;
}

沒有留言:

張貼留言

Android Studio IDE 錯誤

 :app:compile xxxxx JavaWithJavac FAILED An exception has occurred in the compiler (1.8.0_312). Please file a bug against the Java compiler ...