#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;
}
沒有留言:
張貼留言