求数组中元素的最大值,printArray()函数不能正常运行。有关问题出在size,为什么size的值是垃圾值

求数组中元素的最大值,printArray()函数不能正常运行。问题出在size,为什么size的值是垃圾值?
#include <iostream>
#include <iomanip> // for setw()
#include <cstdlib> // for srand()
#include <ctime> // for time()
using namespace std;
/* 类声明 */
class ArrayMax
{
public:
ArrayMax( int size = 10);
~ArrayMax();
void printArray( void );
void maxArray( void );
void printMax( void );

private:
int size;
int *pArray;
int max;

};
int main( void ) 
{
ArrayMax am1;
ArrayMax am2( 5 );

am1.printArray(); //输出am1的元素
am1.maxArray(); //求出am1最大值
am1.printMax(); //输出am1最大值

am2.printArray();//输出am2的元素
am2.maxArray(); //求出am2最大值
am2.printMax(); //输出am2最大值

getchar();
return 0;
}

/* 函数定义 */
ArrayMax :: ArrayMax( int size )
{
size = size;
pArray = new int[ size ];
max = 0;

time_t seed = time( NULL );
srand( ( unsigned int ) seed );

for( int i = 0 ; i < size ; i++ )
{
pArray[ i ] = rand() % 100 + 1;
}
}
ArrayMax :: ~ArrayMax()
{
delete [] pArray;
cout<< "动态空间已释放\n" ;
}
void ArrayMax :: printArray( void )
{
//cout<<size;//调试语句
cout << "\n数组元素如下 : \n" ;
for( int i = 0; i < size ; i++ )
{
cout << setw( 3 ) << pArray[ i ];
}
}
void ArrayMax :: maxArray( void )
{
max = pArray[ 0 ];
for( int i = 1 ; i < size ; i++ )
{
if( max < pArray[ i ] )
{
max = pArray[ i ];
}
}
}
void ArrayMax :: printMax( void )
{
cout << "数组元素的最大值是:" << setw( 3 ) << max << endl;
}

------解决方案--------------------

#include <iostream>
#include <iomanip> // for setw()
#include <cstdlib>  // for srand()
#include <ctime>  // for time()
using namespace std;
/* 类声明 */
class ArrayMax
{
public:
ArrayMax( int size = 10);
~ArrayMax();
void printArray( void );
void maxArray( void );
void printMax( void );
private:
int size;
int *pArray;
int max;
};
int main( void )