Hey guys the below code works fine and i get the correct result but I
fear I am coding dangerously here. Its usually better to have the
constructor inialize the array elements to zero before I enter the values
but when i tried this:
Code:
m_Array1[ m_ARRAY_SIZE ] = { 0 }
Inside the constructoir I got an error. Would it be a better idea to have the
constructor call a seperate function that does the above?
Code:
#include <iostream>
#include <iomanip>
class ArrayClass
{
public:
ArrayClass();
~ArrayClass();
void inputArrayData();
void outputArrayData();
private:
static const int m_ARRAY_SIZE = 10;
int m_Array1[ m_ARRAY_SIZE ];
int m_Array2[ m_ARRAY_SIZE ];
};
ArrayClass::ArrayClass()
{
m_Array1[ m_ARRAY_SIZE ];
m_Array2[ m_ARRAY_SIZE ];
}
ArrayClass::~ArrayClass()
{
std::cout << "\nDestructor called....\n";
}
void ArrayClass::inputArrayData()
{
std::cout << "Enter values for array1: ";
for ( int i = 0; i < m_ARRAY_SIZE; i++ )
{
std::cin >> m_Array1[ i ];
}
std::cout << "\nEnter values for array2: ";
for ( int i = 0; i < m_ARRAY_SIZE; i++ )
{
std::cin >> m_Array2[ i ];
}
}
void ArrayClass::outputArrayData()
{
std::cout << "ARRAY 1" << std::setw( 12 ) << "VALUE\n\n";
for ( int i = 0; i < 10; i++ )
{
std::cout << std::setw( 3 ) << i << std::setw( 14 ) << m_Array1[ i ]
<< std::endl;
}
std::cout << "\nARRAY 2" << std::setw( 12 ) << "VALUE\n\n";
for ( int i = 0; i < 10; i++ )
{
std::cout << std::setw( 3 ) << i << std::setw( 14 ) << m_Array2[ i ]
<< std::endl;
}
}
// main - begins program execution /////////////////////////////////////////////
//
int main(int argc, char *argv[])
{
ArrayClass ac;
ac.inputArrayData();
ac.outputArrayData();
std::cin.get(); // freeze console output window
std::cin.ignore();
return 0; // return value from main to OS
}